[英]Why can't I find my text file I created on my android phone?
我制作了一個應用程序,接受用戶輸入,將其保存到文本文件中,然后在用戶單擊“提交”按鈕后將其從文本文件顯示到屏幕上。 該應用程序運行完美,但是當我進入手機時,似乎找不到該文本文件。 有人知道為什么會這樣嗎?
我的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");
}
});
供參考的是我制作的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");
}
}
}
可能文件尚未創建。 您是否已請求寫入Android清單中的外部存儲的權限?
http://developer.android.com/reference/android/Manifest.permission.html#WRITE_EXTERNAL_STORAGE
我曾經測試過您的代碼是否正常工作
myFile.createFile(this, "tester.txt");
也許您的Filemanager沒有顯示文件,您正在使用哪個文件管理器? 我使用ES資源管理器進行了查看
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.