ファイルを内部ストレージに読み書きする際に問題が発生しました。Androidが内部ストレージにファイルを読み書きする
これらは私が読んで/ファイルを書き込むために使用するメソッドです:
public static void writeFile(String fileName, String data) throws IOException {
File file = new File(activity.getFilesDir() + "/" + fileName);
file.getParentFile().mkdirs();
if (file.exists())
file.delete();
file.createNewFile();
FileOutputStream fos = new FileOutputStream(file);
fos.write(data.getBytes());
fos.close();
}
public static String readFile(String fileName) throws IOException {
FileInputStream fis = new FileInputStream(new File(activity.getFilesDir() + "/" + fileName));
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
line = br.readLine();
}
fis.close();
return sb.toString();
}
これは動作します:
writeFile("fileName", "someData");
readFile("fileName");
が、これにはないが:
writeFile("directory/filename", "someData");
readFile("directory/filename");
何らかの理由でI FileNotFoundException:(そのようなファイルやディレクトリはありません)
私はいくつかの方法を試しましたが、パスでは何も動作しません。
いつ例外がありますか? – greenapps
mkdirs()の戻り値をチェックしていません。 – greenapps
ファイルが存在する場合は削除します。それは必要ではありません。そして、あなたはdelete()の戻り値をチェックしていません。 – greenapps