【发布时间】:2016-06-18 11:34:57
【问题描述】:
我从一个文件中创建了一个 InputStream 对象,并从该文件中创建了一个 InputStreamReader。
InputStream ips = new FileInputStream("c:\\data\\input.txt");
InputStreamReader isr = new InputStreamReader(ips);
我基本上会以字节的形式将数据读取到缓冲区,但是当我应该读取字符时,我将“切换模式”并使用 InputStreamReader 读取
byte[] bbuffer = new byte[20];
char[] cbuffer = new char[20];
while(ips.read(buffer, 0, 20)!=-1){
doSomethingWithbBuffer(bbuffer);
// check every 20th byte and if it is 0 start reading as char
if(bbuffer[20] == 0){
while(isr.read(cbuffer, 0, 20)!=-1){
doSomethingWithcBuffer(cbuffer);
// check every 20th char if its # return to reading as byte
if(cbuffer[20] == '#'){
break;
}
}
}
}
这是读取混合了字符和字节数据的文件的安全方法吗?
【问题讨论】:
标签: java file inputstream fileinputstream