【问题标题】:how to locate a file?如何定位文件?
【发布时间】:2014-11-25 19:28:41
【问题描述】:

您好,我想知道程序如何定位文件。 例如。我有课

    public class MiReader {

    private File file;    
    private BufferedReader bufferedReader;    

    public MiReader(String dir) {

        try {
            file= new File(dir);
            bufferedReader = new BufferedReader(new FileReader(file));

        } catch (Exception ex) {
            Logger.getLogger(MiReader.class.getName()).log(Level.SEVERE, null, ex);
        }        
    }

    public void imprimir() {    
        ***
    }
}

我知道该文件在项目中(我正在使用 netbeans) 项目在C:\NetBeansProjects\Application

文件:C:\NetBeansProjects\Application\file.txt

所以当我实例化 MiReader 时必须是这样的:

MiReader mr = new MiReader("C:\\NetBeansProjects\\Application\\file.txt");

现在如果我从另一个位置运行程序 例如现在它在

D:\Pograms\Application

所以文件是D:\Pograms\Application\file.txt

现在我必须将创建类的方式更改为

MiReader mr = new MiReader("D:\\Pograms\\Application\\file.txt");

我想知道程序如何找到刚刚运行程序的文件, 像

MiReader mr = new MiReader(program.getLocation()+"\\file.txt")

学习英语:)

【问题讨论】:

  • 你应该研究一下Java中类路径的概念。

标签: java file location bufferedreader


【解决方案1】:

您可以使用相对路径。阿卡

MiReader Mr = new MiReader("file.text");

这样程序将在您运行它的目录中查找文件file.text

【讨论】:

    【解决方案2】:

    您可以使用 System.getProperty 获取 user.home、user.dir、类路径等作为您尝试打开的文件的标准前缀。 Here are all of the System properties

    文件 f = 新文件 (System.getProperty("user.home" + "/foo.txt"));

    【讨论】:

    • 感谢这两个答案都很有用,但我通过 System.getProperty 学到了更多东西
    猜你喜欢
    • 2020-12-25
    • 2011-09-05
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    • 2020-08-07
    • 2012-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多