2014-11-05 83 views
-1

如何通过服务创建和写入内部存储中的文件? 没有任何代码(未尝试异步任务)。谢谢!服务将文件写入内部存储

+0

你能说得过吗?你有什么尝试?我没有得到你的问题 – Elltz 2014-11-05 02:45:53

+0

海报希望他们的服务写入文件。什么是混乱? – 2017-01-05 16:11:55

回答

0

为什么你想写一些服务?这意味着您的应用程序不断在内部存储器上写入数据,这不是一个好方法。
那么你可以尝试这个代码来读取和写入存储中的文件。

// ------------------------------将数据写入文件--------- ------------------------ //

{

try { 
     File myFile = new File("Your File name"); 
     myFile.createNewFile(); 
     FileOutputStream fOut = new FileOutputStream(myFile); 
     OutputStreamWriter myOutWriter =new OutputStreamWriter(fOut); 
     myOutWriter.append(txtData.getText()); 
     myOutWriter.close(); 
     fOut.close(); 
     Toast.makeText(v.getContext(),"Done writing SD 'mysdfile.txt'", Toast.LENGTH_SHORT).show(); 
     txtData.setText(""); 
    } 
    catch (Exception e) 
    { 
     Toast.makeText(v.getContext(), e.getMessage(),Toast.LENGTH_SHORT).show(); 
    } 

// ---------- -----------------从SDCARD中放置的文件中读取数据------------------- //

try { 
     File myFile = new File("Your File name"); 
     FileInputStream fIn = new FileInputStream(myFile); 
     BufferedReader myReader = new BufferedReader(new InputStreamReader(fIn)); 
     String aDataRow = ""; 
     String aBuffer = ""; 
     while ((aDataRow = myReader.readLine()) != null) 
     { 
      aBuffer += aDataRow ; 
     } 
     txtData.setText(aBuffer); 
     myReader.close(); 

    } 
    catch (Exception e) 
    { 
     Toast.makeText(v.getContext(), e.getMessage(),Toast.LENGTH_SHORT).show(); 
    } 

也写在Android.Manifest这个权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
+0

关于使用此代码写入文件(以及我确实添加了权限),我正在为只读文件系统获取IOException - java.io.IOException:打开失败:EROFS(只读文件系统) – 2014-11-05 09:15:03

+0

解决方法:使用File path = Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_MOVIES); 文件myFile =新文件(路径,文件名); – 2014-11-05 09:27:59