gpt4 book ai didi

java - 文件按实际格式上传下载

转载 作者:行者123 更新时间:2023-12-01 16:04:46 25 4
gpt4 key购买 nike

我必须编写代码来在远程计算机上上传/下载文件。但是,当我上传文件时,不会保存新行,并且它会自动插入一些二进制字符。另外,我无法以实际格式保存文件,我必须将其保存为“filename.ser”。我正在使用java的序列化-反序列化概念。

提前致谢。

最佳答案

您到底是如何传输文件的?如果您使用 InputStream 的实现和 OutputStream ,它们在逐字节级别上工作,因此您最终应该得到二进制相等的输出。

如果您使用 Reader 的实现和 Writer ,它们根据某种字符映射将字节转换为字符,然后在保存时执行相反的过程。根据各种机器的平台编码(如果您没有明确指定字符集,可能还有其他影响),您很可能最终会在二进制文件中出现差异。

您提到换行符的事实让我认为您正在使用 Readers 发送字符串(并且可能您自己通过手动添加换行符将字符串缝合在一起)。如果您希望文件二进制相等,则将它们作为字节流发送并逐字存储该流。如果您希望它们与给定字符集中的字符串相等,请使用 Readers 和 Writers 但显式指定字符集。如果您希望它们作为平台默认设置中的字符串传输(不是很有用),那么请接受它们不会像文件一样是二进制的。

<小时/>

(另外,你的问题确实没有提供太多信息来解决它。对我来说,它基本上是“我写了一些代码来执行 X,但它不起作用。在哪里?我错了?”你似乎认为你的代码是正确的,但没有列出它,但同时认识到它不是......)

关于java - 文件按实际格式上传下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2856744/

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