Я новичок и в Java, и в Android Studio, но я недавно учила себя. В настоящее время я пытаюсь понять, как писать и читать простые текстовые документы на устройстве Android.
Я видел несколько разных способов сделать это в Интернете, но почти все они должны делать с написанием и чтением байтов. Я не совсем понимаю все это на данном этапе, и я просто хочу писать / читать текстовые документы. Я мог бы просто скопировать и вставить материал, который я видел в Интернете, и посмотреть, работает ли он, но я бы предпочел иметь хоть какое-то понимание того, что делает код. Я пытался прочитать онлайн-документацию по многим вещам, которые, как я видел, используют другие люди для достижения этой цели, и мне трудно понять.
Решение, которое я нашел и работало нормально, работает Java из командной строки на моем компьютере не работает, когда я помещаю его в свой MainActivity. java и запускаю эмулятор. Я не уверен, что это проблема пути к файлу или проблема с разрешениями, но я надеюсь, что кто-то здесь может сказать мне, почему этот код не записывает текстовые документы во внутреннее хранилище Android.
package com.example.test;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import java.io.File;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.Scanner;
public class MainActivity extends AppCompatActivity {
static File testFile = new File("test_file.txt");
static TextView textDisplay;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textDisplay = findViewById(R.id.textDisplay);
saveData();
}
public static void saveData() {
String text = String.format("%s,%s,%s,%s,%s", 7, 3, 4, 9, 2);
try {
FileWriter textWriter = new FileWriter(testFile);
textWriter.write(text);
textWriter.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void loadData(View view) {
ArrayList<Integer> intList = new ArrayList<>();
try {
Scanner readFile = new Scanner(testFile).useDelimiter(",");
while (readFile.hasNext()) {
Integer data = Integer.parseInt(readFile.next());
intList.add(data);
}
readFile.close();
textDisplay.setText(intList.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}