2011-07-05 3 views
1

내부 저장소에 텍스트 파일을 쓰려고하는데 가장 좋은 방법은 텍스트 파일에 문자열이 포함될 것이라고 생각했습니다.내부 sorage에 텍스트 파일을 쓰는 가장 좋은 방법은 무엇입니까?

나는이 :

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를 얻을 :/

사전에 감사합니다.

내가 그것을 원하는대로 작동되는 결국 코드입니다 :

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() is not set, 활동을 확장하지 않는 클래스에서 어떻게 설정합니까? – Houlahan

+0

내 원래 소식이 업데이트되었습니다. – Houlahan

답변

0

내가 사용자와 암호 (여전히 encripted 할 필요에 대한 정보를 저장하기 위해이 방법을했다,하지만 당신은 할 수

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

} 

}

관련 문제