【问题标题】:Write to file is not working in Android写入文件在 Android 中不起作用
【发布时间】:2018-03-27 11:08:24
【问题描述】:

我一直在尝试在 Android 中写入文件。它不工作,甚至不创建文件。它总是执行 catch 块。这是我的程序的一部分。

private void write(){
    try {
        FileWriter fileWriter  = new FileWriter("C:\\Users\\Administrator\\AndroidStudioProjects\\SunCalculator\\app\\src\\main\\res\\raw\\au_locations.txt");
        Log.e("Data","path detected");
        BufferedWriter bfWriter = new BufferedWriter(fileWriter);
        bfWriter.write("Text Data");
        bfWriter.close();
        Log.e("Data","worked");
    } catch (IOException e) {
        e.printStackTrace();
        Log.e("Data","not worked");
    }
}

我还尝试创建一个File 对象并将其传递给FileWriter 构造函数。这些都不起作用。我正在使用 Android Studio 2.3.3

【问题讨论】:

  • 问题是:您从哪里执行此代码,错误消息是什么,C:\Users\Administrator 是可写的。
  • 您的 Android 设备/模拟器没有 C: 驱动器。此外,您不能在运行时写入资源,如果这实际上是您正在尝试的。
  • 您一定遇到了一些例外情况,在这里发布肯定会有所帮助。
  • 我也尝试写入 D:\。它也没有工作。我的项目路径是 C:\Users\Administrator\AndroidStudioProjects\SunCalculator
  • 那些驱动器/路径只存在于您的开发机器上。它们不会存在于 Android 系统上。

标签: java android filewriter


【解决方案1】:

您正在尝试将文件写入位置C:\\Users....,这是 Windows 操作系统的目录结构。

但 Android 是基于 Linux 操作系统构建的。要在android中获取用户可写目录,您应该使用Environment.getExternalStorageDirectory(),如下所示:

File file = new File(Environment.getExternalStorageDirectory(), filename);

【讨论】:

    猜你喜欢
    • 2011-08-29
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    • 2015-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多