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

問題は解決された。次のようにASCIIエンコーディングを追加して、PowerShellスクリプトを修正しました。

Out-File -Encoding ASCII 

そして私は使用しました

System.getProperty("line.separator");

これで問題が解決し、ファイルの内容がそのまま印刷されます(新しい行を含む)

于 2012-09-05T11:21:21.290 に答える
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 に答える