Iam将文件添加到我的Eclipse项目中
当我的程序正在运行以读取它时,我需要打开它
主要问题当iam尝试打印文件的路径时
它打印出该文件位于bin文件夹中,但无法打开它,这给了我
找不到文件(系统找不到指定的路径)
这是我的代码
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
public class po {
public static void main(String[] args) throws FileNotFoundException {
URL path=po.class.getClassLoader().getResource("abcd.txt");
String path_s=path.toString();
System.out.println(path.getPath().toString());
String p=path.getPath().toString();
System.out.println(p);
String pp="ar\rrrr";
p=p.replaceAll(pp.substring(2,3),"/");
System.out.println(p);
File file = new File(p);
BufferedReader br = new BufferedReader(new FileReader(file));
String st;
try {
while ((st = br.readLine()) != null)
System.out.println(st);
} catch (IOException e) {
e.printStackTrace();
}
}
}
对于那些将被标记为重复的人,我已经提到了此解决方案,但没有成功
Solution Of StackOverflow
如果文件是这样
它给了我空指针异常 在Line上,当我尝试将路径转换为字符串
URL path=po.class.getClassLoader().getResource("abcd.txt");
String a=path.toString();
答案 0 :(得分:0)
这是一个完整的工作示例:
import java.io.*;
import java.net.*;
public class Test {
public static void main(String[] args) {
URL url=Test.class.getClassLoader().getResource("Files_1/abcd.txt");
try {
File file = new File(url.toURI());
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String st;
while ((st = br.readLine()) != null)
System.out.println(st);
} catch (IOException e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
确保Files_1/abcd.txt
相对于调用getResource()
的类。
在我的示例中,我具有这样的目录结构:
Desktop
+-- test
+-- Test.java
+-- Test.class
+-- Files_1
+-- abcd.txt
这两个命令都可以使用:
~/Desktop/test $ java Test
和
~/Desktop $ java -cp test Test
答案 1 :(得分:0)
如果您使用的是代码:
URL path=po.class.getClassLoader().getResource("abcd.txt");
这意味着您正在使用类资源位置(构建后)
在这种情况下,由于将文件移动到了其他位置,因此可以更改变量的值。
//String path_s=path.toString();
String path_s="Files/abcd.txt"; //relative path to proj.