2012-09-03 14 views
8

データを.CSVファイルで整理しようとしています。データを特定の行に配置したいので、「\ n」を入れてみましたが、動作していません。特定の行にデータを置くのを助けてください。事前にお...Android:CSVファイルに改行を書くには?

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(); 
      } 
     } 
+1

"動作していません"とはどういう意味ですか?あなたは正確に何を見ますか?質問するときに具体的なことは、あなたに必要な答えを与えるでしょう。 –

+1

たとえば、 "first、second \ nthird"がcsvに追加された場合、 "first"と "second"のみが表示されます.csvファイルの "third"を見ることはできません。これがandroid editors.supposeの問題です.csvをWindows PCに転送すると、「3番」も新しい行に表示されます。 –

答えて

8

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

write.print("\r\n")で改行を書くか、vimのような他のエディタでファイルを開くだけです。ファイルを開くためにどのエディタを使用しても、改行文字はそこにあります。

+0

私はexcel..itsで開こうとしていますが、あなたが言ったように働いていません... "\ n"と表示されるよいエディタを案内してください –

+0

ファイルからインポートするには、 CSVファイル '。 Excelでファイルを直接開くべきではありません。ファイルがCSVファイルであることを検出できない場合があります。エディタの場合、 'notepad ++'や 'EditPlus'や' UltraEdit'のような商用のものは '\ n'を行区切り文字として扱います。 – neevek

+0

最後に、それはcsvWriter.print( "\ r \ n")で私のために働いていました。@ Neevekありがとう –

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(); 
    } 
} 
2

CSVファイルは、作成したように見えないほど簡単ではありません。私は、クイックCSVパーサー/ライターを書くときに、多くの問題に遭遇しました。

OpenCSVを使用して、すぐにすべての問題を解決してください。

CSVWriter writer = new CSVWriter(new FileWriter("yourfile.csv"), '\t'); 
// feed in your array (or convert your data to an array) 
String[] entries = "first#second#third".split("#"); 
writer.writeNext(entries); 
1
  1. あなただけ持っているのprintln
1

を試してみてください、あなたは csvWriter.flush()

  • を閉じる前に、代わりに印刷を使用してストリームをフラッシュしてみてください:あなたはこのような何かを行うことができますOpenCSVを使用

    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(); 
           } 
          } 
    
  • 関連する問題