【发布时间】:2020-07-15 05:19:17
【问题描述】:
我是 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();
}
}
}
【问题讨论】:
-
你在你的问题中写道:当我把它放在我的 MainActivity.java 中时它不起作用你能扩展吗?你有错误吗?文件没有被创建?是否已创建但为空?
标签: java android filewriter