Ścieżka do pliku

0

Witam,
Mam taki mały problem chcę odczytać plik graficzny w jednym z tutoriali wyczytałem że jest to bardzo proste i zobaczyłem taki kod

File f = new File("c:\images\myimages\sun.gif");
BufferedImage bi = ImageIO.read(f);

i zastosowałem go u siebie

public class Diver extends JPanel {
	Image obrazek = null;
	
	public Diver(){
		String url = new String();
		String s = new String("pawel2a1.jpg");
		JTextArea arena = new JTextArea(url);
		add(arena);
		File f = new File("c:\pawel2a1.jpg");
		try {
			BufferedImage bi = ImageIO.read(f);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		}
}

i wszystko byłoby ok gdyby nie to że kompilator Eclipsa nie pozwala podać ścieżki jako
File f = new File("c:\pawel2a1.jpg");
twierzadząc że dozwolone jest \r\t\a itd komunikat ten wyświtlany po angielsku :
Invalid escape sequence (valid ones are \b \t \n \f \r " ' \ )
a po zmianie w kodzie

File f = new File("c:\\pawel2a1.jpg");

Dostaje komuniat :

javax.imageio.IIOException: Can't read input file!
	at javax.imageio.ImageIO.read(Unknown Source)
	at Diver.<init>(Diver.java:33)
	at DiveLog.populateTabbedPane(DiveLog.java:45)
	at DiveLog.init(DiveLog.java:30)
	at sun.applet.AppletPanel.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

czyli że nie może znaleźć pliku (tak mi się wydaje) i jest to spowodowane złą ścieżką
Proszę o pomoc bo nie mam pojęcia jak sobie z tym poradzić.
Pozdrawiam

0

wielkosc znakow nie ma w windowsie znaczenia, a tutaj jest uzywany windows (c:...)
slashe zamiast backslashy nic nie zmienia tutaj, wewnatrz klasa File sama potrafi sobie parsowac i tworzyc sciezki zaleznie od systemu operacyjnego, ale oczywiscie to nie zaszkodzi niczemu
moim zdaniem jest ok ta sciezka, po prostu nie ma takiego pliuku i juz

0

a czy backslashe nie powinny byc escape'owane? sproboj \ zamiast
a najlepiej to nie polegac na parsowaniu, tylko uzwac File.separator (nie pathSeparator!)

pozdrawiam

0

trzeba eskejpowac
mowiac ze klasa moze parsowac itp mialem na mysli wlasnie ze wewnetrznie uzywa File.separator

1 użytkowników online, w tym zalogowanych: 0, gości: 1