import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
//正常情况
//main()方法中第一个read()和和第二个read();是可以顺利执行完的
//public class Demo {
// static BufferedOutputStream bo = null;
// static BufferedInputStream bi = null;
// static File in = null;
// public static void main(String[] args) {
// in = new File("d:\\ThreadPrint.java");
// reset();
// read();//第一个
// System.out.println("---");
// reset();
// read();//第二个
// }
// //
// public static void read() {
// int len = 0;
// byte[] by = new byte[1024 * 9];
// try {
// while ((len = bi.read(by)) != -1) {
// System.out.println(new String(by, 0, len));
// }
// } catch (IOException e) {
// e.printStackTrace();
// }
//
// }
// // 重置bi输入流的方法
// public static void reset() {
// try {
// bi = new BufferedInputStream(new FileInputStream(in));
// } catch (FileNotFoundException e) {
// e.printStackTrace();
// }
// }
//
//}
//出问题情况
//main()方法中第一个read()是可以顺利执行完的,第二个read()读取的结果是空;
public class Demo {
static BufferedOutputStream bo = null;
static BufferedInputStream bi = null;
static File in = null;
public static void main(String[] args) {
in = new File("d:\\ThreadPrint.java");
try {
bi = new BufferedInputStream(new FileInputStream(in));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
read();// 第一个
System.out.println("---");
read();// 第二个
}
//
public static void read() {
int len = 0;
byte[] by = new byte[1024 * 9];
try {
while ((len = bi.read(by)) != -1) {
System.out.println(new String(by, 0, len));
}
} catch (IOException e) {
e.printStackTrace();
}
}
}