在运行时获取路径输入文件

时间:2012-02-21 06:24:36

标签: java file

我的主类还有一个类,它将文件路径(绝对)作为字符串。如何使用其值初始化此文件路径。不需要对文件路径进行硬编码。

我的包裹结构是

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)

任何线索??

3 个答案:

答案 0 :(得分:0)

这将返回文件的绝对路径

File f = new File("<your file>");
String path = f.getAbsolutePath();

答案 1 :(得分:0)

建造后你可能没有src目录。它将是classesbin等。如果您的数据是静态的,那么resources文件夹应该与classes文件夹合并(这是Maven的默认值)。

即。结构可能是:

/
    com
        xyz
            pk1
                Test.class
    data
        input.txt

然后您可以使用

获取指向资源的URL
YourClassName.class.getResource("/data/input.txt");

InputStream

YourClassName.class.getResourceAsStream("/data/input.txt");

这是静态资源的方法。您甚至可以在jar中打包资源。如果你想修改文件而不是错误的方法。

答案 2 :(得分:0)

您可以选择JFileChooser选择您的文件,然后进行设置 JFileChooser chooser=new JFileChooser(); 和 然后 File file=chooser.getSelectedFile();