Чтение + Запись текстовых файлов
Всех приветствую. Столкнулся с проблемами записи и чтения файлов.
Код кнопки "Save":
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final EditText edit = new EditText(getActivity());
edit.setInputType(InputType.TYPE_CLASS_TEXT);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Сохранить")
.setMessage("Введите название файла для сохранения")
.setView(edit)
.setPositiveButton("Сохранить", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
sname = edit.getText().toString();
save(sname);
sname = null;
}
})
.setNegativeButton("Отмена", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which)
{
}
});
builder.show();
}
});
public void save (String name) {
try {
File f = new File(name + ".txt");
PrintWriter pw = new PrintWriter(name + ".txt");
f.createNewFile();
pw.println(a);
pw.close();
} catch (IOException e) {
Toast t = Toast.makeText(getActivity(), "Ошибка: Файл уже создан, выберите другое имя файла!", Toast.LENGTH_LONG);
t.show();
}
Здесь проблема в том, что постоянно происходит исключение IOException, ну а файл, как следствие не создается.
Код кнопки "Open":
open.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final AlertDialog.Builder alert = new AlertDialog.Builder(getActivity());
File fol = new File("gallery");
String [] files = fol.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".txt");
}
});
final Spinner list = new Spinner(getActivity());
SpinnerAdapter adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, files); //в этой строке NullPointerException
list.setAdapter(adapter);
alert.setTitle("Открыть файл")
.setMessage("Выберите файл для открытия")
.setPositiveButton("Открыть", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
sname=list.getSelectedItem().toString();
open(sname);
sname=null;
}
})
.setNegativeButton("Отмена", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which){
}
})
.setView(list);
}
});
public void open(String name) {
try {
BufferedReader bf = new BufferedReader(new FileReader(name));
a= bf.readLine();
bf.close();
DayChange(a);
} catch (FileNotFoundException e) {
Toast t = Toast.makeText(getActivity(),"Файл не найден", Toast.LENGTH_LONG);
t.show();
} catch (IOException e) {
Toast t = Toast.makeText(getActivity(),"Файл не заполнен", Toast.LENGTH_LONG);
t.show();
}
}
Здесь в обозначенной строке происходит NullPointerException. Понимая, что файлы не создаются кнопкой "Save", создавал самостоятельно пару текстовых файлов рядом с файлом .java. Предполагал, что проблема кроется в одном и том же, прошу помощи ...