Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android API28:无法写入以前创建的文件_Java_Android - Fatal编程技术网

Java android API28:无法写入以前创建的文件

Java android API28:无法写入以前创建的文件,java,android,Java,Android,我的问题是,我不能用我的android应用程序写入现有文件。按下按钮一次,创建文件并将行写入其中。但在那之后按下按钮什么也不起作用。我真的找不到错误 String filePath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath() + File.separator + "test.txt"; 在创建时,我请求权限,这些权限也在manifest.xm

我的问题是,我不能用我的android应用程序写入现有文件。按下按钮一次,创建文件并将行写入其中。但在那之后按下按钮什么也不起作用。我真的找不到错误

String filePath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath() + File.separator + "test.txt";
在创建时,我请求权限,这些权限也在manifest.xml中设置

        String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE};
    requestPermissions(permissions,1);
单击“我的功能”:

    View.OnClickListener myhandler2 = new View.OnClickListener() {
    public void onClick(View v) {
        try {
            final Path path = Paths.get(filePath);
            Files.write(path, Arrays.asList("line"), StandardCharsets.UTF_8,
                    Files.exists(path) ? StandardOpenOption.APPEND : StandardOpenOption.CREATE);
        } catch (final IOException e) {
        }
单击按钮数次并在单独的编辑器中打开文件后,仅显示第一行。但是Files.readAllLines(path).toString()可以显示所有内容

**编辑:**好的,代码就像一个符咒。我将手机插入电脑,只有在创建了新文件后,才会刷新windows下的目录。只有在拔下并重新连接手机后,才能看到文件中的更改。有人对这种行为有解释吗?
**EDIT2:*我使用Windows资源管理器导航到该文件,并使用文本编辑器打开它。变化不可见。然而,使用内置的android studio设备文件资源管理器(视图>工具窗口>设备文件资源管理器)并在android studio中打开文件显示了每个更改

您的代码包含可能包含出错原因的异常:

将此添加到您的应用程序并查看错误消息:

    } catch (final Exception e) {
         // could be SecurityException some permission issu, IOException i.e file locked, invalid filePath
         Log.e("MyApName", "cannot append to '" + filePath+
                            "'", e);
    }                        

谢谢你的回答。为了可读性,我删除了上面代码段中的异常处理。没有抛出异常…您的代码捕获IOException mine捕获异常。没有捕获到一般异常?没有异常或IOException。你看过我昨天在问题中的编辑了吗?