从Java中的一个流中读取文本和二进制文件

时间:2011-12-06 01:41:57

标签: java string file http

我想从流中读取文本和二进制文件,其中流可以是文件或URL连接。两个流都具有相同的格式,其中有一个ASCII文本标题,后跟一个大的二进制数据块。我正在使用DataInputStream来执行此操作。对于文件,我正在使用

DataInputStream dis = new DataInputStream(new FileInputStream(new File("test")));

对于URL,我正在使用(其中uc被初始化为指向URL):

DataInputStream dis = new DataInputStream(new BufferedInputStream(uc.getInputStream()));

设置DataInputStream之后,我按照:

进行操作
dis.readLine()
dis.read(buf);

这有效,但我注意到readLine是depecrated(即使有posts引用它)。因为我的文字是ASCII,所以继续使用它是否可以?如果这不是一个好主意,并且我使用JDK建议使用BufferedReader,有没有办法同时访问文本和二进制文件?我尝试使用BufferedReader来获取文本标题,但是在使用底层流时我得到的二进制数据不正确,可能是因为其中一些已经被消耗了。

1 个答案:

答案 0 :(得分:0)

它被弃用的原因是未能将字节正确转换为字符。由于此示例仅限于ASCII,因此使用它没有问题。