我似乎无法理解如何传递文件夹以从类路径中加载文件。它与文本文件一起使用在与.class文件相同的文件夹中,或者如果我使用files/test.txt
而不是test.txt
。我做错了什么?
代码:
import java.io.*;
public class T {
public static void main(String[] args) {
String line;
File f = new File("test.txt");
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(f));
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
}
}
}
}
文件夹和文件:
stuff/T.java
stuff/T.class
某处有一个带有test.txt文件的文件夹,我想在类路径中给出。
我使用命令java -cp .../files T
从Windows命令行中的stuff文件夹运行测试。
答案 0 :(得分:0)
String dirPath = "/Users/you/folder/";
String fileName = "test.txt";
File directory = new File(dirPath);
File file = new File(directory, fileName);
// Read file now
您可以在任何文件对象上使用.exists()来检查它是否存在。
答案 1 :(得分:0)
检查File
是否是目录,然后在必要时循环遍历目录的内容。
public class T {
public static void main(String[] args) {
File f = new File("stuff");
if(f.isDirectory()){
for(File file:f.listFiles()){
printFileName(file);
}
}else{
printFileName(f);
}
}
private static void printFileName(File f) {
String line;
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(f));
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
}
}
}
}
如果您不确定代码在哪个目录中查找File
s输出当前目录。
File file = new File(".");
System.out.println(file.getAbsolutePath());