簡體   English   中英

為什么找不到在Android手機上創建的文本文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM