【问题标题】:Java working with filesJava 处理文件
【发布时间】:2018-01-20 09:46:06
【问题描述】:

我今天刚开始学习java。我通常在学校使用 C++,但现在我想学习更多的编程语言。

在 C++ 中,当我使用文件输入或输出时,我会在项目目录中创建它们。

好的,第一个问题。当我用 C++ 编写算法问题时,我通常必须使用文件输入和输出。 I created the files like this.

这是正确的方法吗?在 C++ 中,如果我在项目目录中创建文件,则不必编写任何目录,只需编写文件名即可。

我有以下代码:

import java.io.*;
public class kMax {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(
                                new FileReader("file_input.in"));
        PrintWriter pw = new PrintWriter(
                            new BufferedWriter(
                                    new FileWriter("file_output.out")));
        br.close();
        pw.close();
    }
}

但我收到以下错误:

Exception in thread "main" java.io.FileNotFoundException: file_input.in (The system cannot find the file specified)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(FileInputStream.java:195)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at java.io.FileInputStream.<init>(FileInputStream.java:93)
    at java.io.FileReader.<init>(FileReader.java:58)
    at kMax.main(kMax.java:6)

【问题讨论】:

  • 文件graf_partial.infile_input.in(如您的错误日志中所示)是否存在?为什么你不能仅仅阅读和理解错误日志?都是英文的。
  • 已编辑,代码中的文件名错误,我忘记改了。相同的错误日志。
  • 错误信息告诉你问题是什么:"file_input.in (系统找不到指定的文件)"。你把文件名弄错了。应用程序的当前目录中没有file_input.in 文件。
  • 你的代码知道在哪里可以找到文件吗?

标签: java file input output


【解决方案1】:

File 类有一个构造方法:

File(String path)

如果路径以驱动器开头,比如

String path = "D:/newFile.txt";

文件路径将被视为绝对路径。 如果路径不是以 driva 开头,例如:

String path1 = "newFile.txt";

它将被视为相对路径,相对于项目。 因此,您的文件应该在项目“Test”中创建。 像这样:

The file to java File class look for

【讨论】:

  • 相对路径将相对于当前工作路径,可以通过System.getProperty("user.dir");
【解决方案2】:

了解 Java 类将在何处查找文件很重要。

只需添加这一行

System.out.println(System.getProperty("user.dir"));

您将获得工作目录,在此路径中添加您的文件。

如果您使用任何 IDE,例如 eclipse 或 netbeans 只需在项目文件夹中添加您的文件(仅供参考,Eclipse 项目文件夹是工作文件夹

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-01
    • 2017-11-05
    • 2015-03-08
    • 1970-01-01
    • 2011-09-10
    • 2012-07-29
    • 1970-01-01
    • 2020-08-25
    相关资源
    最近更新 更多