/**
* java I/O 字节流转换
*
*
@author
bpe
*
*/
public
class
InputStreamTest {
public
static
void
main(String[]
args
) {
//合并流 SequenceInputStream
// 把文件中的内容读取到程序中(使用到了字节流InputStream中所有的方法)
try
{
// 建立连接 注:java.io.IOException: mark/reset not supported
// 因为FileInputStream并不能使用唤醒流 也就是reset方法
// InputStream stream = new FileInputStream("D:\\
bpe
\\input.txt");
BufferedInputStream
stream
=
new
BufferedInputStream(
new
FileInputStream(
"D:\\\\bpe\\\\input.txt"
));
// stream.available() 返回可以从流中读取的字节数
byte
[]
data
=
new
byte
[
stream
.available()];
// 不读取前5个字符
// stream.skip(5);
// 给流设置断点 让流暂停读取
stream
.mark(
stream
.read(
data
, 0,
data
.
length
/ 2));
System.
out
.println(
"暂停前读取的数据======>>"
+
new
String(
data
));
System.
out
.println(
"让流暂停读取----------------"
);
Thread.
sleep
(2000);
System.
out
.println(
"让流开始读取---------------"
);
stream
.reset();
// 读取全部文件 read(byte[] b)
stream
.read(
data
);
// read()返回-1表示这个流已经到了末尾
int
i
= 0;
// 定义一个记录索引的变量
int
index
= 0;
// 循环读取每个数据
while
((
i
=
stream
.read()) != -1) {
// 把读取的数据放到i中
data
[
index
] = (
byte
)
i
;
index
++;
}
// 把字节数组转成字符串
System.
out
.println(
"读取的文件数据=========================>>"
+
new
String(
data
));
// 输出数据==>>inputStream ��FileInputStream.
// 使用了stream.skip(5) 输出数据==>>Stream ��FileInputStream.
// 关闭流
stream
.close();
}
catch
(Exception
e
) {
//
TODO
Auto-generated catch block
e
.printStackTrace();
}
}
}