9

データを .CSV ファイルに整理しようとしています。データを特定の行に配置したいので、「\n」を入力しようとしましたが、機能しません。特定の行にデータを配置するのを手伝ってください。ありがとうございます前進..

public void writeData(String data,String strFilePath)
        {

            PrintWriter csvWriter;
            try
            {

                File file = new File(strFilePath);
                if(!file.exists()){
                    file = new File(strFilePath);
                }
                csvWriter = new  PrintWriter(new FileWriter(file,true));


                csvWriter.print(data+","+"hello");
                csvWriter.append('\n');
                csvWriter.print("world");


                csvWriter.close();


            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
        }
4

5 に答える 5

8

あなたのコードは見栄えがよく、改行がファイルに正しく書き込まれていると確信しています。私が考えることができる唯一の理由は、行区切りとして扱わないエディターでファイルを開いたということです。ペアを行区切りとして\n扱います(Windowsのメモ帳など)。\r\n

したがって、改行をwrite.print("\r\n")で書くか、単にファイルを のような他のエディタで開くことができますvim。ファイルを開くために使用するエディターに関係なく、改行文字があります。

于 2012-09-03T04:49:45.523 に答える
2
  1. ストリームを閉じる前にフラッシュしてみてください csvWriter.flush()
  2. print を使用する代わりに、println を試してください
于 2012-09-03T08:35:38.427 に答える
1

に変更するだけcsvWriter.print("world");ですcsvWriter.println("world");。次の印刷は次の新しい行になります。

public void writeData(String data,String strFilePath)
            {

                PrintWriter csvWriter;
                try
                {

                    File file = new File(strFilePath);
                    if(!file.exists()){
                        file = new File(strFilePath);
                    }
                    csvWriter = new  PrintWriter(new FileWriter(file,true));


                    csvWriter.println(data+","+"hello");
                    csvWriter.print("world");


                    csvWriter.close();


                }
                catch (Exception e)
                {
                    e.printStackTrace();
                }
            }
于 2013-04-10T21:53:16.547 に答える
1

次のコードを ( を使用してStringBuffer) 試してください - スレッドセーフで変更可能な文字列:

    public void writeData(String data, String strFilePath) {

    PrintWriter csvWriter;
    try {
        /*1. declare stringBuffer*/
        StringBuffer oneLineStringBuffer = new StringBuffer();

        File file = new File(strFilePath);
        if (!file.exists()) {
            file = new File(strFilePath);

        }
        csvWriter = new PrintWriter(new FileWriter(file, true));

        /*2. append to stringBuffer*/   
        oneLineStringBuffer.append(data + "," + "hello");
        oneLineStringBuffer.append("\n");
        oneLineStringBuffer.append("world");

        /*3. print to csvWriter*/
        csvWriter.print(oneLineStringBuffer);

        csvWriter.close();

    } catch (Exception e) {
        e.printStackTrace();
    }
}
于 2012-09-03T04:45:44.077 に答える