2010-08-30 12 views
6

Estoy encontrando un FileNotFoundException cuando trato de hacer un archivo usando RandomAccessFile:java.io.FileNotFoundException cuando se utiliza para crear el archivo RandomAccessFile

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

Ni ahora la forma de evitar esto. Me está volviendo loco.

Gracias

+0

¿De verdad tiene permiso para crear un archivo en la raíz del sistema de archivos? Intenta con 'test.jpg' –

+0

"/"está allí por accidente ... No lo uso en el código. La aplicación debe crear el archivo en el directorio de la aplicación, no el directorio raíz. – mlevit

Respuesta

7

Trate

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

Gracias amigo. Una cosa más ... más abajo estoy intentando acceder de nuevo para convertir a un mapa de bits: bmImg = BitmapFactory.decodeFile ("wallpaperSwitch.jpg"); Me sale el error otra vez, ¿cómo lo hago entonces? – mlevit

+0

Bitmap bmImg = BitmapFactory.decodeStream (openFileInput ("wallpaperSwitch.jpg")); Trata eso. –

1

De la documentación:

FileNotFoundException - si el modo es "r", pero el objeto de archivo dado no denota un archivo normal existente, o si el modo comienza con "rw" pero el objeto de archivo dado no denota una, archivo normal grabable existente y un nuevo archivo normal de ese nombre no se puede crear, o si se produce algún otro error al abrir o crear el archivo

¿Eres capaz de crear tales un archivo por otros medios? ¿Estás trabajando en un entorno donde "/" denota el directorio raíz?

+0

No he intentado crear el archivo usando otros medios, pero supongo que obtendré el mismo resultado. El "/" está allí por accidente ... por favor ignóralo. – mlevit

1

En realidad este error se produce cuando sólo damos el nombre del archivo

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

por ejemplo:

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

introducir la ruta de toda Directorio, por ejemplo

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

File.seseparator? –

Cuestiones relacionadas