【问题标题】:Reading from txt file in Java用Java从txt文件中读取
【发布时间】:2019-07-27 14:37:24
【问题描述】:

我编写了这段代码用于从 Java 中读取 txt:

package exe;

import java.io.*;

public class Class1 {

    public static void main(String[] args) {
        Solve g = new Solve(args[0]);
    }
}

class Solve {

    public Solve(String fileName) {

        String line = null;
        try {
            FileReader fileReader = new FileReader(fileName);
            BufferedReader bufferedReader = new BufferedReader(fileReader);
            while ((line = bufferedReader.readLine()) != null) {
                System.out.println("Reading...");
            }
            bufferedReader.close();
        } catch (IOException ex) {
            System.out.println("Exception");
        }
    }
}

我在与Class1.java 文件相同的目录中有一个名为 test 的 txt 文件。我还在此程序中将test.txt 作为参数,所以如果我在Class1 中打印args[0],则会打印test.txt。我也尝试过使用这样的完整路径:Solve("C:\\Users....exe\\src\\test.txt");,但它仍然会产生异常。

我做错了什么?

txt 包含 5 行文本,所以我预计 Reading... 会出现 5 次。

【问题讨论】:

  • 它仍然会产生异常:将System.out.println("Exception");替换为ex.printStackTrace(),您就会知道抛出了哪个异常、它的类型、它的消息以及抛出了哪一行它。忽略错误消息会让您的生活变得困难。或者更好的是,不要捕获异常。而是将 throws 子句添加到您的方法中,因为无论如何您都无法以有意义的方式处理它。
  • 另外,当您执行ls foodir foo 时,lsdir 程序是否会在与lsdir 可执行文件相同的目录中查找文件?还是查看当前目录?同样的规则也适用于 Java。
  • 顺便说一句:你不应该在构造函数中开始计算。您应该在实例方法中移动计算。
  • 一旦你的代码工作,你可以做的改进是使用try资源而不是try

标签: java text file-io


【解决方案1】:

上面的代码是正确的并且工作正常。

【讨论】:

  • 应该是评论。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
  • 1970-01-01
  • 2015-05-03
  • 2016-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多