2013-02-25 2 views
1

내부 스토리지 (안드로이드)에 파일로 :저장 객체 내가이 시도

public class People implements Serializable { 

String name; 

public People(String name) 
{ 
    this.name = name; 
} 

public String getName() 
{ 
    return name; 
} 

public void saveAsObject(People p) throws FileNotFoundException, IOException 
{ 
    try 
    { 
     ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream(new File("test","test.dat"))); 
     os.writeObject(p); 
     os.close(); 
     System.out.println("Sucess"); 
    } 

    catch(IOException e) 
    { 
     System.out.println(e); 
    } 

} 

} 

내가 수동으로 폴더를 만들었습니다. 내가 그것을 java.io를 던졌습니다

new FileOutputStream("text.dat") 

시도 (해당 파일 또는 디렉터리)

"ENOENT java.io.FileNotFoundException : /test/test.txt : 개방 실패"그것은이 eror을 던졌습니다 .FileNotFoundException : EROFS (전용 파일 시스템을 읽기)

이 내 메인 클래스입니다 :

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
      People p = new People("Ray"); 
    try { 
     p.saveAsObject(p); 
    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

} 
+0

이것을 시도하십시오 : http://stackoverflow.com/a/15067968/1531054 –

+0

고맙습니다. Context.getFilesDir()을 시도해 보겠습니다. – n0hepe

답변

1

new File("test","test.dat") 안드로이드에서 파일 경로를 얻기의 유효한 방법이 아니다.

이 시도 : 작업 디렉토리

new File(Environment.getExternalStorageDirectory(), "/data.dat"); 
+0

내부 저장소에 저장하고 싶습니다. 대신 Environment.getDataDirectory()를 사용할 수 있습니까? – n0hepe

+0

당신은'getCacheDir()'을 호출 할 수 있습니다. – Budius

0

앱의 기본 전류는 당신이 쓸 수있는 권한이없는 것이다, "/"입니다.