gpt4 book ai didi

java - 为什么这个程序会输出 "java.io.BufferedReader@Number"?

转载 作者:行者123 更新时间:2023-12-01 18:34:24 24 4
gpt4 key购买 nike

这很快就把我难住了。我有一个包含以下代码的 Java 程序:

public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub

String file1 = args[0];
String file2 = args[1];
String output = args[2];

Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(output), "utf-8"));

// Get the file
BufferedReader br1 = new BufferedReader(new FileReader(file1));

ArrayList<String> masterRBT = new ArrayList<String>();

// Read the files
while(br1.readLine() != null) {
masterRBT.add(br1.toString());
System.out.println(br1.toString());
}

读取文件(在本例中为 .csv),并将其输出到命令行。

我使用命令行运行程序,加上三个参数,使用so(它只真正使用第一个):

java -jar csvdiff.jar mainfile.csv subfile.csv output.csv

但是,它返回这个:

java.io.BufferedReader@17dfafd1

不断重复,就像循环一样。我尝试放入 Try/Catch 错误,但它仍然执行相同的操作 - 没有错误。我已打开 .csv 文件并验证其内容。

CSV 文件与 .jar 文件位于同一目录中。

我错过了什么?

最佳答案

因为您正在尝试打印 BufferedReader 的实例,而不是从中读取的数据

改变

while(br1.readLine() != null) {
masterRBT.add(br1.toString());
System.out.println(br1.toString());
}

while((String line = br1.readLine()) != null) { 
masterRBT.add(line);
System.out.println(line);
}

关于java - 为什么这个程序会输出 "java.io.BufferedReader@Number"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22705981/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com