获取当前类的所在工程路径;
如果不加“/”
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的方法,获取磁盘文件的文件名、长度、大小等特性。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)