【问题标题】:java.io.FileNotFoundException when using RandomAccessFile to create file使用 RandomAccessFile 创建文件时出现 java.io.FileNotFoundException
【发布时间】:2010-08-30 03:37:34
【问题描述】:

当我尝试使用 RandomAccessFile 创建文件时遇到 FileNotFoundException:

RandomAccessFile file = new RandomAccessFile("/test.jpg", "rw");

我现在不知道如何解决这个问题。快把我逼疯了。

谢谢

【问题讨论】:

  • 您实际上是否有权在文件系统根目录上创建文件?试试test.jpg
  • "/" 是偶然出现的......我不在代码中使用它。应用程序应该在应用程序目录而不是根目录中创建文件。

标签: java android filenotfoundexception random-access


【解决方案1】:

试试

RandomAccessFile file = new RandomAccessFile(new File(getFilesDir(), "test.jpg"),
        "rw");

【讨论】:

  • 谢谢伙计。还有一件事......再往下,我试图再次访问它以转换为位图: bmImg = BitmapFactory.decodeFile("wallpaperSwitch.jpg");我又报错了,那我该怎么办?
  • 位图 bmImg = BitmapFactory.decodeStream(openFileInput("wallpaperSwitch.jpg"));试试看。
【解决方案2】:

来自文档:

FileNotFoundException - 如果模式为“r”但给定的文件对象不表示现有的常规文件,或者如果模式以“rw”开头但给定的文件对象不表示现有的可写常规文件和无法创建该名称的新常规文件,或者在打开或创建文件时出现其他错误

您是否可以通过其他方式创建这样的文件?您是否在“/”表示根目录的环境中工作?

【讨论】:

  • 我没有尝试使用其他方式创建文件,但我假设我会得到相同的结果。 “/”是偶然出现的……请忽略它。
【解决方案3】:

其实这个错误发生在我们只给出文件名的时候

String fileName="Shiva.txt"
String Directory = Environment.getExternalStorageDirectory() + File.separator + "OneSecondMoments" + File.seseparator + fileName

例如:

RandomAccessFile randomAccessFile = new RandomAccessFile(fileName, "rw");

给出整个目录的路径,例如

RandomAccessFile randomAccessFile = new RandomAccessFile(Directory, "rw");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多