【问题标题】:Robovm Read and write to a fileRobovm 读写文件
【发布时间】:2014-10-02 20:27:02
【问题描述】:

我尝试将文本写入文件并稍后阅读此文本。当我使用 FileWriter 时,我变成了 NullPointerException? 这是权限问题还是...?我也尝试了 PrintWriter 但我看到了同样的异常 . 这是我的代码:

FileWriter fw = new FileWriter(new File("file.file"));
fw.write("XYZ");

最好的问候 隆迪

【问题讨论】:

  • 你能告诉我们堆栈跟踪吗?
  • 尝试先声明File,然后使用createNewFile()确保它已创建。

标签: java ios robovm


【解决方案1】:

我猜你的问题是你使用了相对文件路径,但是相对路径的来源不是你想的那样。

首先,尝试使用绝对路径,即在类似 linux 的机器上,例如 /home/me/myCode/myfile.txt 或在 Windows 上,例如 c:/some/path/myfile.txt

为了知道发生了什么,您可以做的另一件事是打印原点。

文件来源 = new File("."); System.out.println(origin.getAbsolutePath());

一旦您知道来源在哪里,您就可以看到获取文件所需的内容。

希望它会有所帮助。

【讨论】:

  • 您好,感谢您的回答。您的代码有效,但它不会创建文件。当我使用 createNewFile() 方法时,我变成了 IOException: EACCESS open failed (Permission denied)
  • 检查您要创建文件的文件夹,您的用户是否有权创建新文件?
【解决方案2】:

听起来像是权限问题。在 iOS 上,您的应用程序存在于安全沙箱中,因此您不能随意在任何您想要的地方读写文件。您可以使用 File.createTempFile 在隐藏您的沙箱的某个地方创建一个临时文件,其他任何人都看不到它,或者使用本机 api 来确定转储文件的位置。以下示例将为您提供对 Documents Directory 文件夹的文件引用:

        NSArray nsa = NSFileManager.defaultManager().URLsForDirectory$inDomains$(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask);
        NSURL nsu = (NSURL)nsa.getFirst();
        String snsu = nsu.getAbsoluteString() + "MyNewDocument.pdf";
        File newFile = new File(new URI(snsu));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-12
    • 2013-05-21
    • 2021-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多