gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 22:21:22 29 4
gpt4 key购买 nike

对于一个类,我必须将任何类型的文件从客户端发送到服务器。我必须单独处理每个数据包并使用 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/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com