【问题标题】:Reading Files in Android在 Android 中读取文件
【发布时间】:2014-12-16 22:54:52
【问题描述】:

所以问题是我无法在 Android 中读取文件。

代码是

Quotenprognose quoten = new Quotenprognose2013(new Beliebtheiten(new AsciiQuelle(new File("lotto_2011_2013.txt"))), 2011);    

错误是一个简单的 NullPointerException。 整个事情作为一个普通的 Java 应用程序工作,但不是作为应用程序。 我的路径格式错误吗? 忽略我自己的课程,我确定错误在

new File("lotto_2011_2013.txt")    

部分。

感谢您的建议!

【问题讨论】:

  • 您应该在问题中包含此类失败的堆栈跟踪。但是,您关于它可以作为普通 Java 应用程序运行但不适用于 Android 的评论强烈表明您正在尝试读取一个在您的 Android 设备上根本不存在的文件。虽然 Android 支持文件系统,但没有一种非常清晰或直接的方法可以将内容与您的应用程序一起保存。通常使用 android-unique 资源或资产机制来代替(但这些不会导致 java.io.File)
  • 为了记录,不,new File("lotto_2011_2013.txt") 本身并不会触发您的错误 - 它对文件系统没有任何作用,它只是创建一个 Java 对象,该对象指向可能 或可能的东西不存在。当您尝试使用它时,如果目标不存在或您没有权限,就会出现问题。
  • 是的,你是对的,错误是在 reader = new FileReader(dateiname);但无论如何,它会被 IOExceptions 捕获。
  • 你的文件在哪里?
  • 就在主项目文件夹中

标签: java android file path


【解决方案1】:

您应该将文件放入getFilesDir()。您无权在其他地方读/写文件。

new File(getFilesDir(), "lotto_2011_2013.txt")

【讨论】:

  • 这是其中一个可能的位置,是的。另请注意,标题说的是读取而不是写入,因此数据很可能与代码一起打包 - 这不会导致它到达 getFilesDir() 引用的位置。
  • getFilesDir() 会导致什么异常?该文件位于 src 文件夹中
  • @DLIK - 源文件夹中的任何内容都不会作为实际的文件系统文件进入设备。查看已经提到的 android-unique 资产或资源机制。
猜你喜欢
  • 1970-01-01
  • 2011-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-17
  • 2014-03-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多