Solved

File object from URL object

Posted on 2004-09-06
23
218 Views
Last Modified: 2010-08-05
Hi,
   What's the easiest way to get a File object from a URL object?


Thanks!
0
Comment
Question by:petepalmer
  • 8
  • 6
  • 4
  • +2
23 Comments
 
LVL 86

Expert Comment

by:CEHJ
Comment Utility
String file = url.getFile();
File f = new File(file);
0
 
LVL 1

Author Comment

by:petepalmer
Comment Utility
I tried that and it dropped dead....


hmmm, I'm going to go recheck what I put - maybe I missed something....
0
 
LVL 86

Expert Comment

by:CEHJ
Comment Utility
Make sure the path returned resolves in the file system
0
 
LVL 30

Expert Comment

by:mayankeagle
Comment Utility
Does the URL refer to a remote location?
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
new File(url.getFile());
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
Ooops, the refreshing problem again... :°(
0
 
LVL 1

Author Comment

by:petepalmer
Comment Utility
Okay my bad, it wasn't the file that was the problem.... it's just the way I was trying to parse it :


URL fileURL = new URL(args[0]);

            File file = new File(fileURL.getFile());


            parser.parse(file.toString());


I've tried numerous things but this is what I have ended up with so far lol
0
 
LVL 1

Author Comment

by:petepalmer
Comment Utility
The URL does point to a remote website
0
 
LVL 18

Expert Comment

by:armoghan
Comment Utility
if the file is placed on the server then you have to download it
try this
http://www.experts-exchange.com/Programming/Programming_Languages/Java/Q_20736476.html
0
 
LVL 18

Expert Comment

by:armoghan
Comment Utility
Extract from the above mentioned Link

java.net.URL url = new java.net.URL("http://www.yahoo.com/");
java.net.URLConnection connection = url.openConnection();
BufferedReader in = new BufferedReader(
                                new InputStreamReader(
                                connection.getInputStream()));
String inputLine;
StringBuffer html = new StringBuffer("");
while ((inputLine = in.readLine()) != null)
        html.append(inputLine);

out.print("read=" + html.toString());
0
 
LVL 1

Author Comment

by:petepalmer
Comment Utility
Surely there has to be an easier way than that? I only want to pass the xml document to the parser....
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 30

Expert Comment

by:mayankeagle
Comment Utility
>> The URL does point to a remote website

Could cause problems if there is a proxy or a firewall in between.
0
 
LVL 30

Expert Comment

by:mayankeagle
Comment Utility
Might be better to download it and save a temporary copy.
0
 
LVL 30

Expert Comment

by:mayankeagle
Comment Utility
You can use the createTempFile () method of the File class.
0
 
LVL 86

Expert Comment

by:CEHJ
Comment Utility
>>The URL does point to a remote website

Then you may want to do

    String[] atoms = file.toString().split("/");
    String name = atoms[atoms.length - 1];
0
 
LVL 86

Accepted Solution

by:
CEHJ earned 125 total points
Comment Utility
>>Surely there has to be an easier way than that? I only want to pass the xml document to the parser....

Use the url ctor of the parser
0
 
LVL 1

Author Comment

by:petepalmer
Comment Utility
Well firewall isn't a problem - using good old http for moving files around - ftp is too "messy" :)

How would I use the createTempFile() method  ?

*goes to check the docs in the meantime*
0
 
LVL 86

Expert Comment

by:CEHJ
Comment Utility
>>Then you may want to do

Ignore that  - i didn't think you were trying to access a remote file as a local one
0
 
LVL 86

Expert Comment

by:CEHJ
Comment Utility
You don't need to create files at all - just read the URL directly by passing it to the ctor of the parser
0
 
LVL 18

Expert Comment

by:armoghan
Comment Utility
In my above mentioned example, you can get the HTML as a String and pass it on to the parser
0
 
LVL 86

Expert Comment

by:CEHJ
Comment Utility
No need for that. Nearly all parsers will accept a URL to the ctor - in fact they'd prefer a URL to a File
0
 
LVL 1

Author Comment

by:petepalmer
Comment Utility
Okay, I just put the URL in there - and of course it worked perfectly. I now feel a complete idiot for not trying that in the first place lol - I have no idea why I decided to try and be clever by doing all that stuff with it.....

ah well, that isn't a mistake I'll be repeating in the near future :)

Thanks all!
0
 
LVL 86

Expert Comment

by:CEHJ
Comment Utility
:-)
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Suggested Solutions

Introduction Java can be integrated with native programs using an interface called JNI(Java Native Interface). Native programs are programs which can directly run on the processor. JNI is simply a naming and calling convention so that the JVM (Java…
Introduction This article is the second of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers the basic installation and configuration of the test automation tools used by…
Viewers will learn about if statements in Java and their use The if statement: The condition required to create an if statement: Variations of if statements: An example using if statements:
This tutorial covers a practical example of lazy loading technique and early loading technique in a Singleton Design Pattern.

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now