?
Solved

File object from URL object

Posted on 2004-09-06
23
Medium Priority
?
258 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 8
  • 6
  • 4
  • +2
23 Comments
 
LVL 86

Expert Comment

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

Author Comment

by:petepalmer
ID: 11989254
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
ID: 11989271
Make sure the path returned resolves in the file system
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 30

Expert Comment

by:Mayank S
ID: 11989301
Does the URL refer to a remote location?
0
 
LVL 37

Expert Comment

by:zzynx
ID: 11989302
new File(url.getFile());
0
 
LVL 37

Expert Comment

by:zzynx
ID: 11989304
Ooops, the refreshing problem again... :°(
0
 
LVL 1

Author Comment

by:petepalmer
ID: 11989307
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
ID: 11989312
The URL does point to a remote website
0
 
LVL 18

Expert Comment

by:armoghan
ID: 11989315
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
ID: 11989330
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
ID: 11989332
Surely there has to be an easier way than that? I only want to pass the xml document to the parser....
0
 
LVL 30

Expert Comment

by:Mayank S
ID: 11989335
>> 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:Mayank S
ID: 11989338
Might be better to download it and save a temporary copy.
0
 
LVL 30

Expert Comment

by:Mayank S
ID: 11989339
You can use the createTempFile () method of the File class.
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 11989340
>>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 500 total points
ID: 11989345
>>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
ID: 11989351
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
ID: 11989352
>>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
ID: 11989358
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
ID: 11989422
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
ID: 11989451
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
ID: 11989572
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
ID: 11989635
:-)
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

INTRODUCTION Working with files is a moderately common task in Java.  For most projects hard coding the file names, using parameters in configuration files, or using command-line arguments is sufficient.   However, when your application has vi…
Basic understanding on "OO- Object Orientation" is needed for designing a logical solution to solve a problem. Basic OOAD is a prerequisite for a coder to ensure that they follow the basic design of OO. This would help developers to understand the b…
This video teaches viewers about errors in exception handling.
This tutorial will introduce the viewer to VisualVM for the Java platform application. This video explains an example program and covers the Overview, Monitor, and Heap Dump tabs.
Suggested Courses
Course of the Month8 days, 7 hours left to enroll

765 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