[英]Why can't I find my text file I created on my android phone?
I made an app that takes user input saves it to a text file and then displays it from the text file onto a screen after a user hits the submit button. 我制作了一个应用程序,接受用户输入,将其保存到文本文件中,然后在用户单击“提交”按钮后将其从文本文件显示到屏幕上。 The app works perfect but when I go into my phone I can't seem to find the text file. 该应用程序运行完美,但是当我进入手机时,似乎找不到该文本文件。 Does anybody know why this could be? 有人知道为什么会这样吗?
My java code is: 我的Java代码是:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myFile = new FileUtility();
myFile.createFile(getApplicationContext(), "tester");
Button b = (Button)findViewById(R.id.button); //button
final TextView out = (TextView) findViewById(R.id.output);
//button listener, when button clicked, produce output on textfield "Score"
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final TextView line1 = (TextView) findViewById(R.id.line1);
final TextView line2 = (TextView) findViewById(R.id.line2);
final TextView t = (TextView) findViewById(R.id.title);
Button b = (Button)findViewById(R.id.button);
line1.setVisibility(View.GONE);
line2.setVisibility(View.GONE);
b.setVisibility(View.INVISIBLE);
String first = line1.getText().toString();
String second = line2.getText().toString();
myFile.writeLine(first);
myFile.writeLine(second);
String output = myFile.readAll();
out.setText(output);
t.setText("File Output");
}
});
For reference here is the FileUtility class I made: 供参考的是我制作的FileUtility类:
public class FileUtility {
private File root;
private File file;
public FileUtility() {
root = Environment.getExternalStorageDirectory();
}
public void createFile(Context context, String fileName) {
try {
if (root.canWrite()) {
file = new File(root, "//" + fileName);
if (!file.exists()) {
file.createNewFile();
}
}
else
{
file = new File(context.getFilesDir(), "//" + fileName); // File(root, "//" + fileName);
if (!file.exists()) {
file.createNewFile();
}
}
} catch (IOException e) {
Log.e("Error", "fail to create a new file");
}
}
public String readAll() {
StringBuilder returnString = new StringBuilder();
try {
BufferedReader in;
FileReader datawriter = new FileReader(file);
in = new BufferedReader(datawriter);
if (file.exists()) {
String str = null;
while((str=in.readLine())!=null)
{
returnString.append(str + "\n");
}
}
in.close();
} catch (IOException e) {
Log.e("Error", "fail to write file");
}
return returnString.toString();
}
public void writeLine(String message) {
try {
BufferedWriter out;
FileWriter datawriter = new FileWriter(file,true);
out = new BufferedWriter(datawriter);
if (file.exists()) {
out.write(message + "\n");
out.flush();
}
out.close();
} catch (IOException e) {
Log.e("Error", "fail to write file");
}
}
} }
maybe the file has not been created. 可能文件尚未创建。 Have you requested the permission to write to external storage in your Android manifest? 您是否已请求写入Android清单中的外部存储的权限?
http://developer.android.com/reference/android/Manifest.permission.html#WRITE_EXTERNAL_STORAGE http://developer.android.com/reference/android/Manifest.permission.html#WRITE_EXTERNAL_STORAGE
I tested your code its working, i used 我曾经测试过您的代码是否正常工作
myFile.createFile(this, "tester.txt");
maybe your Filemanager is not showing the file ,which file manager are you using? 也许您的Filemanager没有显示文件,您正在使用哪个文件管理器? I viewed it using ES explorer 我使用ES资源管理器进行了查看
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.