2014-10-02 140 views
0

我尝试将文本写入文件并稍后阅读此文本。当我使用FileWriter时,我变成了NullPointerException? 这是一个许可问题或...?我也尝试PrintWriter,但我看到相同的异常 。 这是我的代码:Robovm读取和写入文件

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

问候 londi

+0

您能向我们展示堆栈跟踪吗? – PsyCode 2014-10-02 20:30:34

+0

尝试首先声明'File',然后使用'createNewFile()'来确保它被创建。 – 2014-10-02 20:36:41

回答

0

我猜你的问题是,你使用相对路径,而是相对路径的原产地是不是你认为的一个。

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

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

文件来源=新文件(“。”); System.out.println(origin.getAbsolutePath());

一旦你知道原点在哪里,你可以看到你需要什么才能到达你的文件。

希望它会有所帮助。

+0

嗨,谢谢你的回答。您的代码有效,但不会创建该文件。当我使用createNewFile()方法时,我变成了一个IOException:EACCESS打开失败(权限被拒绝) – Londi 2014-10-03 19:06:52

+0

检查您想要创建文件的文件夹,让您的用户有权创建新文件? – 2014-10-05 18:56:12

0

听起来像是一个权限问题。在iOS上,您的应用程序位于安全沙箱内,因此您不能随意在任何位置随意读取和写入文件。您可以使用File.createTempFile创建一个临时文件,将其隐藏在您的沙箱中,其中没有其他人可以看到它,或者使用本地api来确定将文件转储到哪里。以下示例将为您提供对“文档目录”文件夹的文件引用:

 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));