2010-08-30 12 views
6

mam napotkania FileNotFoundException gdy próbuję zrobić plik używając RandomAccessFile:java.io.FileNotFoundException podczas korzystania RandomAccessFile stworzyć plik

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

nie mam teraz jak to obejść. To doprowadza mnie do szału.

Dzięki

+0

Czy rzeczywiście masz uprawnienia do tworzenia plików w katalogu głównym systemu plików? Wypróbuj po prostu 'test.jpg' –

+0

"/"jest tam przez przypadek ... Nie używam go w kodzie. Aplikacja powinna utworzyć plik w katalogu aplikacji, a nie w katalogu głównym. – mlevit

Odpowiedz

7

Spróbuj

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

Dzięki kolego. Jeszcze jedno ... dalej próbuję uzyskać do niego dostęp, aby przekonwertować na bitmapę: bmImg = BitmapFactory.decodeFile ("wallpaperSwitch.jpg"); Dostaję ponownie błąd, jak mam to zrobić? – mlevit

+0

Bitmap bmImg = BitmapFactory.decodeStream (openFileInput ("wallpaperSwitch.jpg")); Spróbuj tego. –

1

Z dokumentacji:

FileNotFoundException - jeśli tryb to „r”, ale biorąc pod uwagę przedmiot plik nie oznacza istniejący zwykły plik, lub jeśli tryb zaczyna się od „rw” ale dany obiekt pliku nie oznacza istniejący, zapisu zwykłego pliku i nowy regularny plik o tej nazwie nie mogą być tworzone lub jeśli wystąpi jakiś inny błąd podczas otwierania lub tworzenia pliku

czy jesteś w stanie stworzyć takie plik w inny sposób? Czy pracujesz w środowisku, w którym "/" oznacza katalog główny?

+0

Nie próbowałem tworzyć pliku przy użyciu innych metod, ale zakładam, że uzyskałbym ten sam wynik. "/" Jest tam przez przypadek ... proszę zignoruj ​​to. – mlevit

1

Właściwie ten błąd występuje, gdy tylko podać nazwę pliku

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

na przykład:

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

podać ścieżkę z całego katalogu, na przykład

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

File.seseparator? –

Powiązane problemy