-4
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new ByteArrayOutputStream(), encoding)); 

public void write(final List<Column> columnsList) throws IOException {
        String data = null;
        int length = columnsList.size();
        int writeIndex = 0;
        for (Column cd : columnsList) {
            data = cd.getData();            
            writer.write(data);
            writer.write(getDelimiter()); // it will return '\t'
        }
        writer.write("\n");
    }

上記のコードはタブスペースをファイルに配置しておらず、実際には\tファイルに書き込みます。ハードコーディングされた「\t」でファイルを書き込むと、実際にタブスペースが書き込まれます。しかし、Web エンドから「\t」区切り文字を受信して​​います。私はちょうどこの区切り文字を選んで、ライターで書いています。しかし、メモ帳でファイルを開くと、実際には「\ t」がTAB SPACEの代わりにファイルに書き込まれます

別の方法でライターを閉じているので、ライターを閉じる心配はありません。

4

6 に答える 6

1

getDelimiter()2 つの文字である "\t" が返されることは間違いありません。

あなたはそれを確認することができますgetDelimiter().toCharArray();

簡単な解決策は、次のコードスニペットのように使用することです

if (getDelimiter().equalsIgnoreCase("\\t")) then use String.valueOf('\t')
于 2013-04-16T13:05:19.180 に答える
-3

writer.close(); を呼び出す必要があります。

あなたはそれを行う?

于 2013-04-16T09:33:08.597 に答える