我正在阅读文件的内容并尝试使用java打印内容。但它会打印垃圾字符以及文件内容。
代码:
import java.io.*;
public class ReadFile {
public String readFile(String filePath){
StringBuilder contents = new StringBuilder();
File file = new File(filePath);
try{
String lines = null;
FileReader fileReader1 = new FileReader(file);
BufferedReader buffer = new BufferedReader(fileReader1);
while((lines = buffer.readLine())!=null){
contents.append(lines);
}
buffer.close();
}
catch(FileNotFoundException ex){
System.out.println("File not found.");
}catch(IOException ex){
System.out.println("Exception ocurred.");
}
return contents.toString();
}
public static void main(String[] args){
ReadFile rf = new ReadFile();
String lines = rf.readFile("C:\\Data\\FaultDn.txt");
System.out.println("Original file contents: " + lines);
}
}
文件内容为:
partner.cisco.com:org-root/mac-pool-QA_MAC_Pool_5-Sep-2012_12:00
输出结果为:
"Original file contents: ÿþp ..." and then junk characters after every letter.
您能否指出我在此代码中缺少的内容?
答案 0 :(得分:0)
我能想到的唯一解释是:
答案 1 :(得分:0)
我也试过你的代码。它工作正常。但我使用Ubuntu所以我只改变了你的文件路径。所以有时在你的文件路径或文件中发生错误。
答案 2 :(得分:0)
您的帖子具有误导性,因为我们大多数人都知道您的程序产生的输出是
![Alt Output](C:\Share\Output.jpg)
如果您正在阅读的内容包含垃圾字符,则很可能是编码问题。如何生成原始文件?
答案 3 :(得分:0)
问题已解决。我通过添加ASCII编码更正了我的powershell脚本,如下所示:
Out-File -Encoding ASCII
我已经使用了
System.getProperty("line.separator");
这解决了问题,并按原样打印文件内容(包括新行)