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]>

Reply via email to