在java中,我需要从站点读取二进制文件并将其写入磁盘文件。此示例http://java.sun.com/docs/books/tutorial/networking/urls/readingURL.html可以成功读取网页,但是当我尝试从我的localhost服务器读取二进制文件并将其写入磁盘文件时,内容会更改,从而破坏二进制文件。使用fc我看到0x90被改为0x3F和其他变化。如何在没有java或任何其他更改任何字符的情况下访问二进制文件(读取URL和写入文件),例如进行任何换行转换或字符转换或其他任何操作,只需读取输入URL并将其写为文件即可。
答案 0 :(得分:1)
不要在InputStreamReader
周围包裹BufferedReader
和openStream()
,只需在BufferedInputStream
周围包裹{。}}。
答案 1 :(得分:0)
java.io.InputStreamReader
州的JavaDoc:
InputStreamReader是从字节流到字符流的桥接器:它使用指定的字符集读取字节并将其解码为字符。它使用的字符集可以通过名称指定,也可以明确指定,或者可以接受平台的默认字符集。
在您的情况下,您要求JVM将字节转换为将转换为字符串的字符。这不是你想要的。而是直接从java.io.InputStream
或通过java.io.BufferedInputStream
读取字节。