在使用原始字节流在我的会议聊天应用程序中苦心尝试实现TCP文件传输之后,我决定发送我想通过对象流传输的文件要容易得多。这些文件作为内存中的File对象发送并存储在其目的地(无论是中央服务器还是下载客户端)。但是,这些文件不仅仅用作文件对象 - 客户端应该能够打开它们。有没有办法在Java中将File对象保存为硬盘文件,或者甚至通过Java打开它们?
答案 0 :(得分:10)
你对“文件对象”是什么意思;你的意思是java.io.File
吗?
类java.io.File
只是目录名称和文件名的表示。它不是可以保存文件内容的对象。
如果您在内存中有数据例如字节数组,那么是的,您可以将其保存到文件中:
byte[] data = ...;
OutputStream out = new FileOutputStream(new File("C:\\someplace\\filename.dat"));
out.write(data);
out.close();
请参阅Oracle Java教程中的Basic I/O Lesson,了解如何使用FileInputStream
和FileOutputStream
读取和写入文件。
答案 1 :(得分:1)
您应该查看Data Handlers
您可以使用它们以Data Sources
方式传输文件,但以“透明”方式传输给您。
答案 2 :(得分:0)
我已经决定发送我想传输的文件要容易得多 通过对象流。“
不是。不好的想法:花费内存和延迟(即时间和空间)。只需发送和接收字节,前面有东西告诉你文件名和文件大小。