简体   繁体   English

为什么找不到在Android手机上创建的文本文件?

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM