java - 在java中将File对象写入文件

标签 java file

对于一个类,我必须将任何类型的文件从客户端发送到服务器。我必须单独处理每个数据包并使用 UDP。我已成功将文件从客户端传输到服务器,现在我有一个文件对象,但我不知道如何将其保存到用户指定的目录。

f = new File(path + '\\' + filename);//path and filename are user specified.
FileOutputStream foutput = new FileOutputStream(f);
ObjectOutputStream output = new ObjectOutputStream(foutput);
output.writeObject(result);//result is a File
output.flush();
output.close();

每当我运行此代码时,它都会写入一个具有适当名称的新文件,但我正在测试的文本文件最终只包含乱码。有什么方法可以将File对象转换为适当目录中的文件吗?

编辑:事实证明,我误解了文件到底是什么。我没有传输数据,而是传输路径。如何传输实际文件?

最佳答案

ObjectOutputStream 是一个将特定格式的数据输出到文本文件的类。只有 ObjectInputStream 的 readObject() 可以解码该文本文件。 如果您打开文本文件,正如您所见,它只是乱码。

你想要这个:

FileOutputStream fos = new FileOutputStream(path + '\\' + filename);
FileInputStream fis = new FileInputStream(result);
byte[] buf = new byte[1024];    
int hasRead = 0;
while((hasRead = fis.read(buf)) > 0){
    fos.write(buf, 0, hasRead);
}
fis.close();
fos.close();

关于java - 在java中将File对象写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29712748/

相关文章:

java - 单击按钮后重复重新绘制面板

c - 从C中的文件中读取特定字符

java - 如何将 java.io.File 变成 java.lang.Class 来运行它?

java - 在 GWT 中将 JavaScriptObject 转换为 Java 对象失败

java - 如何强制 Firefox 使用 java web start 打开页面?

java - 使用java swing调用另一个类的方法来绘制当前类

javascript - 在桌面和移动设备上运行相同的脚本

ios - 如何在我的应用程序中保存图像(路径)?

java - 将控制台数据写入文件并在新框架上显示相同的文件

java - Android 函数转AsyncTask