2012-02-14 25 views
2

私は疲れています。 そして、私はそれが実際には不可能であると信じ始めています。 "myPath/myFile.txt"というファイルの書き方を示す簡単な例はどこにありますか? それからもう一度それを読んで?ファイルを読み書きする方法の例(Android内蔵ストレージへのパスを含む)が必要です

これは私が仕事を得ることができないコードブロックの例:
:これは私が取得エラーです

if(pathExists(path, ctx)) 
{ 
File file = new File(ctx.getFilesDir().getAbsolutePath() +"/" + path, fileName); 
FileInputStream fIn = new FileInputStream(file); 

InputStreamReader isr = new InputStreamReader(fIn); 

StringWriter writer = new StringWriter(); 
IOUtils.copy(fIn, writer, "UTF-8"); 
fileStr = writer.toString(); 
} 

「にjava.io.IOExceptionはディレクトリです」
+1

このヘルプリンクを使用しhttp://developer.android.com/guide/topics/data/data-storage.html#filesInternal – Relsell

+0

このブログを読んで[リンク](HTTP://android-er.blogspot .in/2011/10/read-file-from-internal-storage-via.html) – Deepak

答えて

0

アンドロイドシステムによって自分のアプリケーションに割り当てられたプライベートファイルスペースを除いて、Androidの内部ストレージに(デバイスがルートされていない限り)書き込むことができませんでした。

+0

_アンドロイドシステムによって自分のアプリケーションに割り当てられたプライベートファイルスペースから_ 私はプライベートファイルスペースに書き込みます。 それは私がやろうとしていることです。 – DevNull

+0

フォーマットについてごめんね。それはどちらか動作させることはできません:(( この私が仕事を得ることができないコードブロックの例: (pathExists(パス、CTX)の場合) { ファイルファイル=新しいファイル(CTX .getFilesDir()getAbsolutePath()+ "/" +パス、ファイル名); FileInputStreamのフィン=新しいFileInputStreamを(ファイル); \t \t \t \t にInputStreamReaderのISR =新しいInputStreamReaderの(FIN); \t \t \t \t にStringWriter writer = new StringWriter(); IOUtils.copy(fIn、writer、 "UTF-8"); fileStr = writer.toString(); "java.io.IOException:ディレクトリかどうか" – DevNull

0
String strfile1 = getApplicationContext().getFilesDir().getAbsolutePath() + "/serstatus.txt" ; 

File f1 = new File(strfile1); 
0

javaのようにシリアル化メソッドを使用する必要があります。 ファイルとしてテキストを保存するには、FileOutputStreamを使用し、FileInputStreamを使用する必要があるファイルを読み込む必要があります。次のコードを確認することができます。単純な編集テキストと2つのボタンを1つ保存し、もう1つはそのファイルに保存されたデータを読み込みます。

次のコードは、raksiという名前のファイルにテキストを保存するためのコードです。

Button savebutton = (Button)findViewById(R.id.but); 
savebutton.setOnClickListener(new View.OnClickListener(){ 
    @Override 
    public void onClick(View v){ 
     e= (EditText)findViewById(R.id.edit); 
     StringBuffer sb = new StringBuffer(); 
     sb.append(e.getText().toString()); 
     String s = sb.toString(); 
     try { 
      final String TESTSTRING = new String(s); 
      FileOutputStream fOut = openFileOutput("raksi.txt",MODE_WORLD_READABLE); 
      OutputStreamWriter osw = new OutputStreamWriter(fOut); 
      osw.write(TESTSTRING); 
      ll = TESTSTRING.length(); 
      osw.flush(); 
      osw.close(); 
     }catch (Exception e) { 
     // TODO: handle exception 
     } 
    } 
}); 

次のコードは、ボタンgetのクリックリスナーです。ファイルからデータを読み取り、トーストとして表示します。

+0

この例ではパスを処理していないようです。 Ex。 "folder1/folder2/name.txt" – DevNull

3

次のスニペットは、アプリケーションスペースに保存されているファイルを目的のパスにコピーします。

File mfile=new File("/data/data/src.com.file.example/files"); 
File[] list=mfile.listFiles(); 
    // The path where you like to save your files 
String extStorageDirectory = "/mnt/sdcard/backup/"; 


    File file23 = null; 
    File fr = null; 
    for(int i =0;i<list.length;i++){ 
File myNewFolder = new File(extStorageDirectory +list[i].getName().substring(0,5)); 

if(myNewFolder.exists()){ 

    String selectedFilePathq = "data/data/src.com.file.example/file/"+list[i].getName(); 
file23 = new File(selectedFilePathq); 
fr = new File(myNewFolder+"/"+list[i].getName()); 
}else{ 
    myNewFolder.mkdir(); 
String selectedFilePathq = "data/data/src.com.file.example/files /"+list[i].getName(); 
file23 = new File(selectedFilePathq); 
fr = new File(myNewFolder+"/"+list[i].getName()); 
} 



try { 
copy(file23,fr); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
} 








public void copy(File src, File dst) throws IOException { 
    InputStream in = new FileInputStream(src); 
    OutputStream out = new FileOutputStream(dst); 

    // Transfer bytes from in to out 
    byte[] buf = new byte[1024]; 
    int len; 
    while ((len = in.read(buf)) > 0) { 
     out.write(buf, 0, len); 
    } 
    in.close(); 
    out.close(); 
} 
+0

私は、外部ディレクトリではなく内部ストレージに書き込む関数が必要でした。 解決策はここにあります: http://stackoverflow.com/questions/9276745/is-it-possible-to-create-and-maintain-a-folder-structure-with-files-using-the-in/9279350 #9279350 しかし、私はあなたが外部ディレクトリを書く必要がある場合の念頭に置いておきます。 ありがとう – DevNull

関連する問題