1

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

4 回答 4

0

我能想到的唯一解释是:

  • 您正在阅读与您认为正在阅读的文件不同的文件,或者
  • 您正在执行的程序与上面的源代码不匹配;例如,您正在执行旧版本的类文件。
于 2012-09-05T09:45:14.697 回答
0

我也试过你的代码。它工作正常。但我使用的是 Ubuntu,所以我只更改了你的文件路径。所以有时您的文件路径或文件中会发生错误。

于 2012-09-05T09:49:37.950 回答
0

您的帖子具有误导性,因为我们大多数人都知道您的程序生成的输出是

![Alt Output](C:\Share\Output.jpg)

如果您正在阅读的内容包含垃圾字符,则很可能是编码问题。原始文件是如何生成的?

于 2012-09-05T09:52:25.570 回答
0

问题解决了。我通过添加 ASCII 编码更正了我的 powershell 脚本,如下所示:

Out-File -Encoding ASCII 

我用过

System.getProperty("line.separator");

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

于 2012-09-05T11:21:21.290 回答