java中获取文件路径的几种方式

java中获取文件路径的几种方式,第1张

获取当前类的所在工程路径;

如果不加“/”

File f = new File(thisgetClass()getResource("")getPath());

Systemoutprintln(f);结果:C:\Documents%20and%20Settings\Administrator\workspace\projectName\bin\com\test

获取当前类的绝对路径;第二种:File directory = new File("");//参数为空

String courseFile = directorygetCanonicalPath() ;

Systemoutprintln(courseFile);结果:C:\Documents and Settings\Administrator\workspace\projectName

获取当前类的所在工程路径;第三种:URL xmlpath = thisgetClass()getClassLoader()getResource("selectedtxt");

Systemoutprintln(xmlpath);结果:file:/C:/Documents%20and%20Settings/Administrator/workspace/projectName/bin/selectedtxt

获取当前工程src目录下selectedtxt文件的路径第四种:Systemoutprintln(SystemgetProperty("userdir"));结果:C:\Documents and Settings\Administrator\workspace\projectName

获取当前工程路径第五种:Systemoutprintln( SystemgetProperty("javaclasspath"));结果:C:\Documents and Settings\Administrator\workspace\projectName\bin获取当前工程路径

import javaawtEventQueue;

import javaawteventActionEvent;

import javaawteventActionListener;

import javaioFile;

import javautilScanner;

import javaxswingJButton;

import javaxswingJFileChooser;

import javaxswingJFrame;

import javaxswingJLabel;

import javaxswingJPanel;

import javaxswingJTextArea;

import javaxswingJTextField;

import javaxswingborderEmptyBorder;

public class CheckFileType extends JFrame {

/

/

private static final long serialVersionUID = -6167144370965431657L;

private JPanel contentPane;

private JTextField textField;

private JTextArea textArea;

/

Create the frame

/

public CheckFileType() {

setTitle("\u5224\u65AD\u6587\u4EF6\u7C7B\u578B");

setDefaultCloseOperation(JFrameEXIT_ON_CLOSE);

setBounds(100, 100, 501, 143);

contentPane = new JPanel();

contentPanesetBorder(new EmptyBorder(5, 5, 5, 5));

setContentPane(contentPane);

contentPanesetLayout(null);

JLabel label = new JLabel("\u9009\u62E9\u6587\u4EF6\uFF1A");

labelsetBounds(10, 10, 84, 15);

contentPaneadd(label);

textField = new JTextField();

textFieldsetBounds(88, 2, 289, 30);

contentPaneadd(textField);

textFieldsetColumns(10);

JButton button = new JButton("\u6D4F\u89C8\u2026\u2026");

buttonaddActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

do_button_actionPerformed(e);

}

});

buttonsetBounds(389, 2, 90, 30);

contentPaneadd(button);

textArea = new JTextArea();

textAreasetOpaque(false);

textAreasetEditable(false);

textAreasetLineWrap(true);

textAreasetBounds(83, 37, 396, 60);

contentPaneadd(textArea);

}

protected void do_button_actionPerformed(ActionEvent e) {

Scanner scan = new Scanner(getClass()// 获取说明文件的扫描器 在文件中获得

getResourceAsStream("extNameinf"));

JFileChooser chooser = new JFileChooser();// 创建文件选择器

boolean searched = false;

int option = choosershowOpenDialog(this);// 打开文件选择对话框

if (option == JFileChooserAPPROVE_OPTION) {// 如果正确选择文件

File file = choosergetSelectedFile();// 获取用户选择文件

textFieldsetText(filegetName());// 把文件名添加到文本框

String name = filegetName();// 获取文件名

while (scanhasNextLine()) { // 遍历说明文件

String line = scannextLine();// 获取一行说明信息

String[] extInfo = linesplit("\t");// 把单行说明信息拆分成数组

// 数组第一个元素是文件扩展名,与用户选择文件名对比

if (nameendsWith(extInfo[0])) {

// 第二个数组元素是文件类型的说明信息,添加到文本域控件中

textAreasetText(extInfo[1]);

searched = true;

}

}

scanclose();// 关闭扫描器

}

if (!searched) {// 如果没找到相关文件类型的说明,则提示用户

textAreasetText("你选择的文件类型没有相应记录,你可以在extNameinfo文件中添加该类型的描述。");

}

}

/

Launch the application

/

public static void main(String[] args) {

try {

EventQueueinvokeLater(new Runnable() {

public void run() {

CheckFileType frame = new CheckFileType();

framesetVisible(true);

}

});

} catch (Exception e) {

eprintStackTrace();

}

}

}

辅助文件

txt您选择的是计算机中的文本文件,值包含文本内容,没有特殊格式代码,用任何文档编辑器都可以打开。

ini程序的配置文件,是针对某个应用程序所附带的配置信息。

exeWindows系统中的可执行文件,是程序的入口,可以直接执行,不需要其他辅助工具。

doc文档文件,Word97-2003都使用这种格式

docx文档文件,Word2007采用这种格式。

bmp位图文件,用于保存位图的图像,是Windows系统默认支持的一种格式。

jpg压缩格式的文件,它的提及更小,更加利于网络传输或作为网页点缀。

jpeg压缩格式的文件,它的提及更小,更加利于网络传输或作为网页点缀。

dllWindows系统中的动态链接库文件,它是应用程序的扩展,为程序提供更多的功能模块。

phpPhp开发的网页文件。

jspJava开发的网页文件。

javaJava语言的源代码文件。

rar压缩文档文件,其格式为RAR,是一种非常流行的压缩格式,压缩率很高,而且可以为压缩文档设置密码,可以创建自解压的压缩文档。

package comtexst;

import javaioFile;

import javaioFileInputStream;

import javaioFileNotFoundException;

import javaioIOException;

public class GetFileMessageOfDisk {

/

@param args

/

public static void main(String[] args) {

File file = new File("D:/");

getMessage(file);

}

private static void getMessage(File file){

File[] files = filelistFiles();

if(files==null){

files = new File[0];

}

for(int i=0;i<fileslength;i++){

if(files[i]isDirectory()){

Systemoutprintln(files[i]getPath());

getMessage(files[i]);

}else{

try {

int length = new FileInputStream(files[i])available();

Systemoutprintln(files[i]getName()+" 长度:"+length+" 大小:"+length/1024+"KB");

} catch (FileNotFoundException e) {

eprintStackTrace();

} catch (IOException e) {

eprintStackTrace();

}

}

}

}

}

我写了一段遍历某个文件查找指定文件的,你自己改成你需要的功能。

import javaioFile;

import javautilHashMap;

public class Test1 {

static HashMap<String, String> filelist=new HashMap<String, String>();

/

递归方法

@param path 文件路径

/

public static void find(String path){

File file=new File(path);

File[] files = filelistFiles();

//如果文件数组为null则返回

if (files == null)

return;

for (int i = 0; i < fileslength; i++) {

if (files[i]isDirectory()) {

//判断是不是文件夹,如果是文件夹则继续向下查找文件

find(files[i]getAbsolutePath());

} else {

//记录文件路径

String filePath = files[i]getAbsolutePath()toLowerCase();

//记录文件名

String fileName=files[i]getName()toLowerCase();

// Systemoutprintln("---"+strFileName);

filelistput(fileName, filePath);

}

}

}

public static void main(String[] args) {

//需要遍历的路径,也就是你要查找文件所在的路径

String path="D:\\kpi\\";

find(path);

Systemoutprintln("kpi9的路径:"+filelistget("kpi9"));

//输出结果:d:\kpi\kpi9

}

}

可以通过BufferedReader 流的形式进行流读取,之后通过readLine方法获取到读取的内容。

BufferedReader bre = null;

try {

String file = "D:/test/testtxt";

bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流

while ((str = brereadLine())!= null) // 判断最后一行不存在,为空结束循环

{

Systemoutprintln(str);//原样输出读到的内容

};

备注: 流用完之后必须close掉,如上面的就应该是:breclose(),否则bre流会一直存在,直到程序运行结束。

如果是要获取文件的类型格式的,先取得文件的名字,然后通过字符串截取(从最后一一个点开始截取)。

File file =new File("");

String fileName=FilegetName();

fileNamesubString(fileNamelastIndexOf(""));

以上就是关于java中获取文件路径的几种方式全部的内容,包括:java中获取文件路径的几种方式、Java中怎么获取文件类型、利用Java文件类File的方法,获取磁盘文件的文件名、长度、大小等特性。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9287254.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存