Don't resort to hardcoded absolute paths. That is a maintainance nightmare. Use what the servlet spec provides for you...
String tempdir = ""+context.getAttribute("javax.servlet.context.tempdir");
That will give you the path to the temp directory provide for your application which, if the server claims to support the servlet spec, *will* exist. This will make it so you can read and write files on any system without worrying about any platform specifics (theoretically).
Jake
At 01:57 PM 1/15/2003 +0000, you wrote:
Hey all - the mystery is now over - I did another search and found a file in:C:\Documents and Settings\Clive\Start Menu\Programs\Apache Tomcat 4.1 Clearly when i searched, i didnt check documents and settings - Now, when file is created, it thinks it is saved at C:\Program Files\Apache Group\Tomcat but I guess Win2K saves under different profiles - weird! Well thank you for all the help on this topic - much appreciated!! I may have to resort to absolute paths. Regards and best wishes, Clive De Silva ----- Original Message ----- From: "Stratmann, Holger" <[EMAIL PROTECTED]> To: "'Tomcat Users List'" <[EMAIL PROTECTED]> Cc: <[EMAIL PROTECTED]> Sent: Wednesday, January 15, 2003 12:50 PM Subject: AW: saving and opening files > Hi - just tried your suggestion and it returns: > I'm file2 and I am at C:\Program Files\Apache Group\Tomcat > 4.1\states.gip > - and guess what, it is not there!Any other ideas? ;-) Well... that's the point where it's getting "weird". I'm quite confident that my answer was the correct one - if the file gives you its absolute path, then that's where it should be (and on top of that, it's in the directory from which the JVM was started, as I had expected). I'm sure this will turn out to be some "funny" thing ;-) I'm sure you've already searched the entire C-drive for it? Try if Java finds it: File file2 = new java.io.File("states.gip"); String path = file2.getAbsolutePath(); File testfile = new File(path); if (testfile.exists()) { System.out.println("file found at " + path); } else { System.out.println("file was supposed to be at " + path + " but isn't!"); } If this code finds your file, then don't tell me it's not there :-))))) Just go look again and again and again ;-) By the way: * "exists()" is a better way of checking for a file than catching the exception... * FileInputStream() doesn't need a file, it's also happy with a path: As soon as you've found out where the file is *g*, you can simplify it to be: ObjectInputStream s1 = new ObjectInputStream(new FileInputStream("states.gip")); Looking forward to the solution for this one :-) Holger > -----Ursprüngliche Nachricht----- > Von: Clive De Silva [mailto:[EMAIL PROTECTED]] > Gesendet: Dienstag, 14. Januar 2003 23:36 > An: Julius Davies; Tomcat Users List > Betreff: Re: saving and opening files > > > Hi - just tried your suggestion and it returns: > I'm file2 and I am at C:\Program Files\Apache Group\Tomcat > 4.1\states.gip > - and guess what, it is not there!Any other ideas? ;-) > > Clive > > Von: Stratmann, Holger [mailto:[EMAIL PROTECTED]] > Gesendet: Dienstag, 14. Januar 2003 11:33 > An: 'Tomcat Users List' > Cc: Julius Davies > Betreff: AW: saving and opening files > > > I *think* a file with a relative path is usually put into the > directory from > which the JVM is started. > (that's what I've found so far - don't know if it's *always* true) > > Well, anyway: "File" has a method "getAbsolutePath()" (or > something like > that). > > Just let the file tell you where it is :-) > > File file2 = new java.io.File("states.gip"); > System.out.println("I'm file2 and I am at " + > file2.getAbsolutePath()); > > HTH - Good luck! > > > > > > -----Original Message----- > > From: Clive De Silva [mailto:[EMAIL PROTECTED]] > > Sent: Monday, January 13, 2003 3:48 PM > > To: [EMAIL PROTECTED] > > Subject: saving and opening files > > > > > > Hi, I have placed my package in the \Apache Group\Tomcat > > 4.1\common\classes\ folder and they are all standard Java > > classes [no servlets or jsps]. One of the methods invoked in > > my main class serializes an object and saves it to a > > persistent file at runtime : > > > > ---------------------Start Snip 1----------------------- > > public boolean saveUser(){ > > File file2 = new java.io.File("states.gip"); > > try{ > > myUser.allocateUser(user); > > FileOutputStream out2 = new FileOutputStream(file2); > > ObjectOutputStream s2 = new ObjectOutputStream(out2); > > s2.writeObject(myUser); > > s2.flush(); > > System.out.println("You have save successfully"); > > return true; > > } > > catch(Exception e){ > > e.printStackTrace(); > > System.out.println("You have save UN-Successfully"); > > return false; > > } > > } > > ---------------------End Snip 1----------------------- > > > > When the class is initialised/created, it first checks to see > > if there is a file called states.gip and if there is, then it > > reads in the object, if there isnt, then it creates an object > > and at a latter stage saves it: > > > > ---------------------Start Snip 2----------------------- > > public boolean createUser(String name){ > > try{//see if a user had been created and try to load it back > > File file2 = new java.io.File("states.gip"); > > FileInputStream in = new FileInputStream(file2); > > ObjectInputStream s1 = new ObjectInputStream(in); > > myUser = (MainUser)s1.readObject(); > > user = recommenderEPG.addUser(name); > > user = myUser.unallocate(user); > > System.out.println("There was an old user!"); > > return true; > > } > > catch(Exception e){//user has not been created so an > > exception is thrown -going to create a new user > > try{ > > myUser = new MainUser(name); > > user = recommenderEPG.addUser(name); > > myUser.allocateUser(user); > > System.out.println("there is definitely no old user"); > > return true; > > } > > catch (DataNotFoundException ef){ > > return false; > > } > > } > > ---------------------End Snip 2----------------------- > > > > When the class does get created for the first time, it does > > not see the 'states.gip' file, which is correct, because it > > has not been created yet. If it is instantiated for a second > > or nth time, it always sees the file and loads it correctly. > > My Question is: where is this file stored? I can not find a > > physical trace of this file - i have done search after search > > and it is not there - yet the Java class opens it > correcly!!!!! Help! > > > > > > Regards, > > > > Clive > > > > > > --- > > Outgoing mail is certified Virus Free. > > Checked by AVG anti-virus system (http://www.grisoft.com). > > Version: 6.0.435 / Virus Database: 244 - Release Date: 30/12/2002 > > > > > --- > Outgoing mail is certified Virus Free. > Checked by AVG anti-virus system (http://www.grisoft.com). > Version: 6.0.435 / Virus Database: 244 - Release Date: 30/12/2002 > > > -- > To unsubscribe, e-mail: > <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: > <mailto:[EMAIL PROTECTED]> > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.435 / Virus Database: 244 - Release Date: 30/12/2002 -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>