Re: How do I write an ImageIcon object into a file on my computer?
Thomas Fritsch wrote:
<phillip.s.powell@gmail.com> wrote:
I hope this makes it more clear:
*update* still fails, can't fix it this time..
Here are my methods
public static void toFile(File file, Object contents) throws
IOException {
FileOutputStream out = new FileOutputStream(file);
I assume you got the Exception in the line above.
(Unfortunately you missed to post the complete exception stack trace)
out.write(contents.toString().getBytes());
}
public static void toFile(String filePath, Object contents) throws
IOException {
File file = new File(filePath);
toFile(file, contents);
}
}
I get this exception thrown:
file:\C:\Documents%20and%20Settings\me\stave.ico (The filename,
directory name, or volume label syntax is incorrect)
The exception says it all: You try to open a file in directory
file:\C:\Documents%20and%20Settings\me
which, of course, doesn't exist.
What you really want to do, is to open a file in directory
C:\Documents and Settings\me
I.e. you have to use
C:\Documents and Settings\me\stave.ico
as filePath in your code above.
Then perhaps this might be a better choice:
/*
* FileDownloader.java
*
* Created on January 10, 2007, 3:47 PM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package FileTools;
import java.io.*;
import java.net.*;
/**
*
* @author ppowell-c
*/
public class FileDownloader implements Serializable {
/** Creates a new instance of FileDownloader */
public FileDownloader() {}
public static void download(URL url, File file) throws IOException
{
InputStream in = url.openStream();
FileOutputStream out = new FileOutputStream(file);
byte[] b = new byte[1024];
int len;
while((len = in.read(b)) != -1) {
out.write(b, 0, len);
}
out.close();
}
public static void download(String path, File file) throws
IOException {
download(new URL(path), file);
}
public static void download(String path, Object contents) throws
IOException {
ObjectOutputStream out = new ObjectOutputStream(new
FileOutputStream(path));
out.writeObject(contents);
out.close();
}
}
What do you think?
Phil
I have no idea what to do. All I want to do is create an icon at
C:/Documents and Settings/me called "stave.ico" with the contents
spawned within ImageIcon icon.
Don't confuse URL strings like
file:\C:\Documents%20and%20Settings\me\stave.ico
with real Windows file paths like
C:\Documents and Settings\me\stave.ico
--
Thomas