Richard Stokes
Richard Stokes

Reputation: 3552

Java saving/opening File objects

After painstakingly trying to implement TCP file transfer in my conference chat application using raw byte streams, I've decided it's much easier to send files that I want transferred through object streams. The files are sent and stored at their destination (whether that is the central server or the downloading client) as in-memory File objects. However, these files are no use as just File objects - clients should be able to open them. Is there a way in java to save File objects as hard-disk files or to even open them up through Java?

Upvotes: 8

Views: 27707

Answers (3)

user207421
user207421

Reputation: 310980

I've decided it's much easier to send files that I want transferred through object streams."

It isn't. Bad idea: costs memory and latency (i.e. time and space). Just send and receive the bytes, with stuff in front to tell you the filename and file size.

Upvotes: 0

Cratylus
Cratylus

Reputation: 54084

You should look into Data Handlers

You can use them to transfer files as Data Sources but in a "transparent" way to you.

Upvotes: 1

Jesper
Jesper

Reputation: 206896

What do you mean with "File objects"; do you mean java.io.File?

Class java.io.File is just a representation of a directory name and filename. It is not an object which can hold the contents of a file.

If you have the data in for example a byte array in memory, then yes, you can save that to a file:

byte[] data = ...;

OutputStream out = new FileOutputStream(new File("C:\\someplace\\filename.dat"));
out.write(data);
out.close();

See the Basic I/O Lesson from Oracle's Java Tutorials to learn how to read and write files with a FileInputStream and FileOutputStream.

Upvotes: 11

Related Questions