文件上传 - 以实际格式下载

时间:2010-05-18 11:27:07

标签: java file upload download

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

提前致谢。

1 个答案:

答案 0 :(得分:1)

你究竟是如何传输文件的?如果您正在使用InputStreamOutputStream的实现,它们将逐字节工作,因此您最终应该使用二进制相等的输出。

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

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


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