Sign in to follow this  
gcsaba2

[java] How to know if I should use / or \ ?

Recommended Posts

I have an XML file from which I read the image file names. Let's say I read the following string "data\images\tank.png" and then I try to load the image with ImageIO. Under Windows, this will work, but under Linux it won't, probably because of the \ slash needs to be replaced with a / So is there a way to make Java load a file on every system, no matter the slashes? Or perhaps I can find out which slash does the current system use, and if its / then I can pass through the String and replace the slashes? How can I find out which slashes are used by the system, then?

Share this post


Link to post
Share on other sites
Quote:
Original post by Fil
The property you are looking for is "file.separator" to be used as

String FileSeparator=System.getProperty("file.separator");

See for reference.


Bah, I was trying with path.separator and kept receiving :
Thanks, that's what I needed. I could just use / but then I'm not sure if it will work on all systems, like Mac for example...

Share this post


Link to post
Share on other sites
If you use file: URIs as names, you should have no problems no matter the platform since the URI format is standardized. Just feed an URI object to java.io.File and use the created object to open your File(In|Out)putStream.

Share this post


Link to post
Share on other sites
You might even consider this: working with java.io.File and friends will fail as soon as you start packaging your program in JAR-files.

The Class-class contains a method getResourceAsStream(String name) which will give you a InputStream to the file (or null if it could not be found). The name-field is a relative path that always uses forward slashes. Example:

InputStream in = ImageResourceLoader.class.getResourceAsStream( "data/images/tank.png" );

Share this post


Link to post
Share on other sites
Everything that was necessary was said, but DaBono's post made me remember my pain when working with JARs and servlets. At that context, you must get the real path to a determined resource.

I never got to understand the use of the 'Class' class to load resources, so I would love to see a small example =D. Also, if you could be so kind as to explain the difference between this approach and the FileEntry class for JARs... I would be very thankfull!

Son Of Cain

Share this post


Link to post
Share on other sites
Quote:
Original post by DaBono
You might even consider this: working with java.io.File and friends will fail as soon as you start packaging your program in JAR-files.


I think what you mean to say here is 'as soon as you start packaging your resources in Jar files'.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this