1

私はこのようなものを持っています:

private void myPrinter(int[] arr) throws IOException{
    FileWriter outFile = new FileWriter("myFile.txt",true);
    PrintWriter out = new PrintWriter(outFile);
    //BufferedWriter out = new BufferedWriter(outFile);
    //PrintStream out=new PrintStream(outFile);
    for (int i=0;i<arr.length;i++){
        System.out.print(arr[i]+" ");
        out.print(arr[i]+" ");   
    }
    System.out.println();
    // out.newLine();
    out.println();
    //out.flush();
    out.close();
}

100 要素の配列を出力する場合は問題ありません。255 を超える要素を含む配列を出力すると、 ‱‰‱‱‱‱‰‰‱‱‰‱਍ のようなものが生成out.print(" "+arr[i]+" ");されます。つまり、その前にスペースを追加すると 問題ありませんarr[i]。ただし、前面に余分なスペースは必要ありません。なぜ必要なのかわかりません。このメソッドは、2D 配列を反復する for ループで呼び出されます。コンソールは問題なく出力しますが、txt ファイルでは上記のように出力されます。メソッドが呼び出されるコードは次のとおりです。

 final int[] anArr=init();
 for (int idz=0;idz< z;idz++ ){
     int[] toBe=new int[anArr.length];
     System.arraycopy( anArr, 0, toBe, 0, anArr.length );
     arr[z]=create(toBe);
     try {
         myPrinter(arr[z]);
     } catch (IOException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
     }

何かが印刷される前に行を追加してみましたが、うまくいきました。ただし、後でtxtファイルから手動で行を削除して保存すると、意味不明なテキストに戻ります。私のtxt構成または何か他のものに何か問題がありますか?

4

0 に答える 0