我的主类还有一个类,它将文件路径(绝对)作为字符串。如何使用其值初始化此文件路径。不需要对文件路径进行硬编码。
我的包裹结构是
src
com.xyz.pk1
data //input.txt is present in this dir
public class Test{
public static void main(){
String filepath = "" //TODO :no hard coding like C:\filename.txt
MyClass c = new new Myclass(filepath);
}
}
编辑: 我的文件夹结构现在如下:
src
data
input.txt
现在,如果我在src
中放置的类中键入以下代码 Test.class.getResourceAsStream("data/Input.csv");
我收到错误
Exception in thread "main" java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:61)
at java.io.InputStreamReader.<init>(InputStreamReader.java:55)
任何线索??
答案 0 :(得分:0)
这将返回文件的绝对路径
File f = new File("<your file>");
String path = f.getAbsolutePath();
答案 1 :(得分:0)
建造后你可能没有src
目录。它将是classes
或bin
等。如果您的数据是静态的,那么resources文件夹应该与classes文件夹合并(这是Maven的默认值)。
即。结构可能是:
/
com
xyz
pk1
Test.class
data
input.txt
然后您可以使用
获取指向资源的URLYourClassName.class.getResource("/data/input.txt");
或InputStream
YourClassName.class.getResourceAsStream("/data/input.txt");
这是静态资源的方法。您甚至可以在jar中打包资源。如果你想修改文件而不是错误的方法。
答案 2 :(得分:0)
您可以选择JFileChooser
选择您的文件,然后进行设置
JFileChooser chooser=new JFileChooser();
和
然后
File file=chooser.getSelectedFile();