jQuery in Action, 3rd edition
The moose likes Beginning Java and the fly likes specifying paths to create file Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "specifying paths to create file" Watch "specifying paths to create file" New topic

specifying paths to create file

David Crossett
Ranch Hand

Joined: Feb 05, 2003
Posts: 102
I'm simply learning how to write data to a file with the FileWriter class. This seems simple enough, but how do I pass a pathname as an argument? The constructor is:


Basically, if I pass just a file name, it will create the file in the \\jdev\bin directory. What if I want an absolute path, such as "c:\903\jdev\mywork..."? When I pass this as an argument, the compiler reads the backslash as an escape character, which is NOT what I want. Help?
nothing fancy to say yet

David Crossett
-nothing important to say, but learnin' plenty-
Ernest Friedman-Hill
author and iconoclast

Joined: Jul 08, 2003
Posts: 24199

If the single argument is an absolute path, it will work fine. But single backslashes have special meaning in Java strings, so you've got to double them:

You can actually also use forward slashes; Windows is just fine with them.

[Jess in Action][AskingGoodQuestions]
David Crossett
Ranch Hand

Joined: Feb 05, 2003
Posts: 102
Would that then be "c:/903/jdev/mywork/file.txt" ? Thank you for your response.
Wayne L Johnson
Ranch Hand

Joined: Sep 03, 2003
Posts: 399
Yes, "c:/903/jdev/mywork/file.txt" will work. In fact, I try and avoid the back-slash at all cost because it looks ugly ;-)
Dirk Schreckmann

Joined: Dec 10, 2001
Posts: 7023
While we're on the topics...
Note that putting two \ characters together is referred to as character "escaping". The \ character is the escape character, which is used in combination with other characters to specify various special sequences. Section 3.10.6 of the JLS describes the various escape sequences. As Ernest already pointed out, to specify a \ character, it must be escaped - by itself.
If we were to ponder whether it's a good idea to specify absolute file names in a Java application, we might well come to the conclusion that it is not. Because how could such a thing be written once and run everywhere?
In many situations, it may be a good idea to let the user specify the absolute location of some file, by doing something like editing a properties file. Such a thing could be done manually, as part of the required installation of the app, or through some setup routine, which allowed the user to specify the location through a running program.

[How To Ask Good Questions] [JavaRanch FAQ Wiki] [JavaRanch Radio]
I agree. Here's the link: http://aspose.com/file-tools
subject: specifying paths to create file
It's not a secret anymore!