2011-07-05 17 views
1

私は内部ストレージにテキストファイルを書き込もうとしていますが、それを行うには何が最善の方法だろうと思っています。テキストファイルには文字列が含まれています。テキストファイルを内部ストレージに書き込む最も良い方法は?

私が持っている:

File file = new File(getFilesDir() + subFolderName + "/" + fileName); 
       BufferedWriter writer; 


       try { 
        writer = new BufferedWriter(new FileWriter(file)); 

        writer.write("ID, Date, Address, Body"); 
        writer.write("\n"); 
        for (String s : list) { 
         writer.write(s); 
         writer.write("\n"); 
        } 
        writer.write("\n"); 
        writer.flush(); 
        writer.close(); 
       } catch (IOException e) {     
        e.printStackTrace(); 
} 

私はちょうど新しいファイルの作成時にjava.lang.NullPointerException取得:事前に/

感謝を。

これは私がそれを望んでいたように働いていると私は終わったコードです:私は(まだencriptedする必要があるユーザーとパスワードの情報を保存するために、このメソッドを持っていましたが、あなたができる

public void WriteFileInternal(ArrayList<String> list, String FileName, Context context) { 

    BufferedWriter bw; 
    try { 
     ContextWrapper cw = new ContextWrapper(context); 
     File directory = cw.getDir("SMSMonitor", Context.MODE_PRIVATE); 

     if (!directory.exists()){ 
      directory.createNewFile(); 
      directory.mkdir(); 

      } 
     File file = new File(directory +"/"+ FileName); 
     file.createNewFile(); 

     bw = new BufferedWriter(new FileWriter(file)); 
     bw.write("ID, Date, Body, Phone Number"); 
     bw.write("\n"); 

     for (String s1 : list) { 
      bw.write(s1); 
      bw.write("\n"); 
     } 
     bw.write("\n"); 
     bw.flush(); 
     bw.close(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
+1

は 'getFilesDir()'、 'subFolderName'とは'設定filename'されています)の基礎としてそれを使うのか? – Bobby

+0

getFilesDir()は設定されていません。アクティビティを拡張しないクラスからどのように設定しますか? – Houlahan

+0

オリジナルの投稿を更新しました – Houlahan

答えて

0

public void saveUserData(String user, String password){ 
    FileOutputStream fos; 
    DataOutputStream dos; 
    try { 
     File f = this.getFilesDir(); 
     String s = f.getCanonicalPath(); 
     File file= new File(s + "/user.txt"); 
     if(file.exists()){ 
      file.delete(); 
     } 
     file.createNewFile(); 
     fos = new FileOutputStream(file); 
     dos = new DataOutputStream(fos); 
     dos.write(user.getBytes()); 
     dos.writeChars("\n"); 
     dos.write(password.getBytes()); 
    } catch (IOException e) {  
     e.printStackTrace(); 
    } 
} 
0
package com.file; 

import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 

import android.app.Activity; 
import android.content.Context; 
import android.os.Bundle; 

public class FileWrite extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    String FILENAME = "hello_file"; 
    String string = "hello world!"; 

    FileOutputStream fos; 
    try { 
     fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); 
      fos.write(string.getBytes()); 
      fos.close(); 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

} 

}

関連する問題