我对Java和Android Studio都是陌生的,但是最近我一直在自学。目前,我正在尝试弄清楚如何在Android设备上编写和读取简单的文本文档。
我已经看到了几种在线完成此操作的方法,但是几乎所有这些方法都与写入和读取字节有关。在此阶段,我还不是很了解所有这些,我只想编写/阅读文本文档。我可以复制并粘贴在网上看到的内容,看看是否可行,但我希望至少对代码的功能有所了解。我已经尝试阅读在线文档,了解很多其他人用来实现此目标的内容,但我很难理解。
当我将其放入MainActivity.java并运行模拟器时,在计算机上通过命令行运行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();
}
}
}
首先要写入和读取文件,我们需要清单权限,并且必须拥有运行时权限。在那之后,我们需要文件路径来保存文件并读取文件。解决这些问题,您一定会成功。