1

私はJavaを使用して書いている.txtファイルを持っていますが、これは非常に特殊な新しい行の配置です。この配置は、Windows でファイルを作成するときに強制されますが、Ubuntu で同じコードを実行すると、1 つあるはずのすべての場所に 2 つの新しい行があります。誰がこれを引き起こしているのか知っていますか? これは私が書くために使用しているコードです:

List<String>toBeWrittenList = new ArrayList<String>();
    for(int x=0; x < finalList.size(); x++){
        toBeWrittenList.add("\n");
        toBeWrittenList.add("==level " + (x+1) +"==");
        for(int y=0; y < finalList.get(x).size();y++){
            if(finalList.get(x).get(y).equals("N"))
                toBeWrittenList.add(y+1 + ". null");
            else
                toBeWrittenList.add(y+1 + ". " + finalList.get(x).get(y));
        }
    }
    try {
        writeSmallTextFile(toBeWrittenList, FILE_NAME3);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

static void writeSmallTextFile(List<String> aLines, String aFileName) throws IOException {
        Path path = Paths.get(aFileName);
        Files.write(path, aLines, ENCODING);
}
4

2 に答える 2

0

私は通常、PrintWriter のメソッド println を使用してテキスト ファイルを作成します。println は OS をチェックし、正しいフィード行 (\n または \n\r) を選択します。

Files.write に問題がある可能性があります。自分でクラスを書いていますか?または、サードパーティのライブラリを使用していますか?

于 2013-03-29T03:51:18.830 に答える
-1

Windows は "\r\n" 文字のペアを使用して改行を区別しますが、Linux は "\n" を改行として扱い、一見 "\r" も扱います。したがって、「\r\n」は Linux では 2 つの改行のように見えます。

テキスト ファイルをdos2unixLinux ボックスにコピーするときに実行して、"\r\n" を "\n" に変換します。テキスト ファイルunix2dosを Windows にコピーして戻し、"\n" を "\r\n" ペアに変換します。

于 2013-03-29T02:59:45.007 に答える