Androidシステム上のシンプルなテキストファイルに書き込もうとしています。これは私のコードです:
public void writeClassName() throws IOException{
String FILENAME = "classNames";
EditText editText = (EditText) findViewById(R.id.className);
String className = editText.getText().toString();
File logFile = new File("classNames.txt");
if (!logFile.exists())
{
try
{
logFile.createNewFile();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try
{
//BufferedWriter for performance, true to set append to file flag
BufferedWriter buf = new BufferedWriter(new FileWriter(logFile, true));
buf.append(className);
buf.newLine();
buf.close();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
ただし、このコードは「Java.io.IOException:open failed:EROFS(Read-only file system)」エラーを生成します。次のようにマニフェストファイルにアクセス許可を追加しようとしましたが、成功しませんでした。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="hellolistview.com"
Android:versionCode="1"
Android:versionName="1.0" >
<uses-sdk Android:minSdkVersion="15" />
<application
Android:icon="@drawable/ic_launcher"
Android:label="@string/app_name" >
<activity
Android:name=".ClassView"
Android:label="@string/app_name" >
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
Android:name=".AddNewClassView"
/>
</application>
<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />
誰も問題が何であるか考えていますか?
ファイルをルートに書き込もうとしているため、ファイルパスをファイルディレクトリに渡す必要があります。
例
String filePath = context.getFilesDir().getPath().toString() + "/fileName.txt";
File f = new File(filePath);
開発者ガイドのこの article からアプローチを使用してみてください。
String FILENAME = "hello_file";
String string = "hello world!";
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();