尝试使用Java打印文件内容时获取垃圾字符

时间:2012-09-05 09:36:10

标签: java readfile

我正在阅读文件的内容并尝试使用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.

您能否指出我在此代码中缺少的内容?

4 个答案:

答案 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");

这解决了问题,并按原样打印文件内容(包括新行)