使用RandomAccessFile创建文件时出现java.io.FileNotFoundException错误

6

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

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

我不知道如何解决这个问题。它让我抓狂。
谢谢。

1
你真的有权限在文件系统根目录下创建文件吗?试试只用test.jpg - Mitch Dempsey
“/”是无意中存在的...我在代码中没有使用它。应用程序应该在应用程序目录而不是根目录中创建文件。 - mlevit
3个回答

8

尝试

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

谢谢,伙计。还有一件事...在下面我再次尝试访问它以转换为位图:bmImg = BitmapFactory.decodeFile("wallpaperSwitch.jpg"); 我又遇到了错误,那我该怎么做呢? - mlevit
尝试这个:Bitmap bmImg = BitmapFactory.decodeStream(openFileInput("wallpaperSwitch.jpg")); - Konstantin Burov

1

实际上,当我们只提供文件名时,就会出现这个错误。

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

1

来自文档:

FileNotFoundException - 如果模式为"r",但给定的文件对象并不表示现有的常规文件,或者如果模式以"rw"开头,但给定的文件对象并不表示现有的可写常规文件,并且不能创建一个新的同名常规文件,或者在打开或创建文件时发生其他错误

您能否以其他方式创建此类文件?您是否在"/"表示根目录的环境中工作?


我没有尝试使用其他方式创建文件,但我认为结果应该是相同的。 "/" 是无意中出现的... 请忽略它。 - mlevit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接