Создание и запись файла на SD-карту... Не найден Исходное исключение

139
10

Я пытаюсь написать файл на SD-карте, но я не могу этого сделать. Можете ли вы помочь мне отладить код?

В методе WriteToFile в этой строке FileOutputStream fos = new FileOutputStream(fileWithinMyDir); исключение FileOutputStream fos = new FileOutputStream(fileWithinMyDir); ,

package utilities;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

import android.content.Context;
import android.os.Environment;
import android.util.Log;

public class LauncherFileOperations {

public void writeToFile(Context context, Object object, String directoryName, String fileName)
{

try{
File mydir = new File(Environment.getExternalStorageDirectory() + directoryName); //Creating an internal dir;
if(!mydir.exists())
mydir.mkdir();

File fileWithinMyDir = new File(mydir, fileName+".pList"); //Getting a file within the dir.
FileOutputStream fos = new FileOutputStream(fileWithinMyDir);

ObjectOutputStream oos = new ObjectOutputStream(fos); //Select where you wish to save the file...
oos.writeObject(object); // write the class as an 'object'
oos.flush(); // flush the stream to insure all of the information was written to 'save.bin'
oos.close();// close the stream
}
catch(Exception ex) {
Log.v("LauncherFile OPerations.. writeFailed to Launcherfile",ex.toString());
}
}

public Object readFromFile(Context context, String directoryName, String fileName) {
Object o = null;
try{
File mydir = new File(Environment.getExternalStorageDirectory() + directoryName); //Creating an internal dir;
File fileWithinMyDir = new File(mydir, fileName+".pList"); //Getting a file within the dir.
FileInputStream fis = new FileInputStream(fileWithinMyDir);
ObjectInputStream ois = new ObjectInputStream(fis);
o = ois.readObject();
ois.close();
}
catch(Exception ex) {
Log.v("LauncherFile operations..readFailed ",ex.toString());
}
return o;
}
}

спросил(а) 2021-01-25T16:47:55+03:00 4 месяца, 4 недели назад
1
Решение
63

File mydir = new File(Environment.getExternalStorageDirectory() + "/" +directoryName); //Creating an internal dir; 
if(!mydir.exists())
mydir.mkdir();

File fileWithinMyDir = new File(mydir, fileName+".pList"); //Getting a file within the dir.
FileOutputStream fos = new FileOutputStream(fileWithinMyDir);

Я думаю, вы должны предоставить "/" для структуры папок. И если у вас есть более одной папки, используйте mkdirs().

ответил(а) 2021-01-25T16:47:55+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема