Загрузка данных
package com.example.myapplication;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
public class MainActivity extends AppCompatActivity {
EditText vvod, fail;
TextView text1;
RadioGroup radioGroup, modeGroup;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
vvod = findViewById(R.id.vvod_txt);
fail = findViewById(R.id.fail);
text1 = findViewById(R.id.text1);
radioGroup = findViewById(R.id.radioGroup);
modeGroup = findViewById(R.id.modeGroup);
}
// Файл во внешнем хранилище (папка приложения)
private File getExternalFile() {
String FILE_NAME = fail.getText().toString();
return new File(getExternalFilesDir(null), FILE_NAME);
}
// ---------- СОХРАНИТЬ ----------
public void save_text(View view) {
String FILE_NAME = fail.getText().toString();
String text = vvod.getText().toString();
boolean append = modeGroup.getCheckedRadioButtonId() == R.id.mode_append;
int selectedId = radioGroup.getCheckedRadioButtonId();
if (selectedId == R.id.vnut) {
// внутренняя память: MODE_PRIVATE - перезаписать, MODE_APPEND - дозаписать
int mode = append ? MODE_APPEND : MODE_PRIVATE;
try (FileOutputStream fos = openFileOutput(FILE_NAME, mode)) {
fos.write(text.getBytes(StandardCharsets.UTF_8));
Toast.makeText(this, "Файл сохранен во внутреннее хранилище!",
Toast.LENGTH_SHORT).show();
} catch (IOException ex) {
Toast.makeText(this, "Ошибка: " + ex.getMessage(),
Toast.LENGTH_SHORT).show();
}
} else if (selectedId == R.id.vneh) {
// внешняя память: второй параметр true - дозапись
File file = getExternalFile();
try (FileOutputStream fos = new FileOutputStream(file, append)) {
fos.write(text.getBytes(StandardCharsets.UTF_8));
Toast.makeText(this, "Файл сохранен во внешнее хранилище! "
+ file.getAbsolutePath(), Toast.LENGTH_SHORT).show();
} catch (IOException ex) {
Toast.makeText(this, "Ошибка сохранения: " + ex.getMessage(),
Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(this, "Ничего не выбрано ", Toast.LENGTH_SHORT).show();
}
}
// ---------- ОТКРЫТЬ ----------
public void open_text(View view) {
String FILE_NAME = fail.getText().toString();
int selectedId = radioGroup.getCheckedRadioButtonId();
if (selectedId == R.id.vnut) {
try (FileInputStream fin = openFileInput(FILE_NAME)) {
byte[] bytes = new byte[fin.available()];
fin.read(bytes);
text1.setText(new String(bytes, StandardCharsets.UTF_8));
Toast.makeText(this, "Файл загружен из внутреннего хранилища!",
Toast.LENGTH_SHORT).show();
} catch (IOException ex) {
Toast.makeText(this, "Ошибка чтения: " + ex.getMessage(),
Toast.LENGTH_SHORT).show();
}
} else if (selectedId == R.id.vneh) {
File file = getExternalFile();
if (!file.exists()) {
Toast.makeText(this, "Файл не существует во внешнем хранилище",
Toast.LENGTH_SHORT).show();
return;
}
try (FileInputStream fin = new FileInputStream(file)) {
byte[] bytes = new byte[(int) file.length()];
fin.read(bytes);
String text = new String(bytes, StandardCharsets.UTF_8);
text1.setText(text);
Toast.makeText(this, "Файл загружен из внешнего хранилища!",
Toast.LENGTH_SHORT).show();
} catch (IOException ex) {
Toast.makeText(this, "Ошибка чтения: " + ex.getMessage(),
Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(this, "Ничего не выбрано ", Toast.LENGTH_SHORT).show();
}
}
// ---------- УДАЛИТЬ ----------
public void delete_text(View view) {
String FILE_NAME = fail.getText().toString();
int selectedId = radioGroup.getCheckedRadioButtonId();
if (selectedId == R.id.vnut) {
if (deleteFile(FILE_NAME)) {
text1.setText("");
Toast.makeText(this, "Файл удален из внутреннего хранилища!",
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "Файл не найден во внутр. хран. ",
Toast.LENGTH_SHORT).show();
}
} else if (selectedId == R.id.vneh) {
File file = getExternalFile();
if (file.exists()) {
if (file.delete()) {
text1.setText("");
Toast.makeText(this, "Файл удален из внешнего хранилища!",
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "Ошибка при удалении файла",
Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(this, "Файл не найден во внешнем хран. ",
Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(this, "Ничего не выбрано ", Toast.LENGTH_SHORT).show();
}
}
}