//流
按方向分
输入流,输出流(传输方向)
按内容分
字节流
字符流
//笛卡尔积后,分为四种
输入字节流,输出字节流
输入字符流,输出字符流
其对应的最高抽象类是
inPutStream ,outPutStream
Reader ,Weiter
public static void main(String[] args) {
//try catch 是异常抛出
try {
//创建一个输入字节流的对象
InputStream is = new FileInputStream("E:/1.txt");//是本地文件路径
//创建一个与is的长度相等的数组,来存放is的字节
byte[] b = new byte[is.available()];
is.read(b);
//定义一个字符c,遍历转换成byte的c
String c= "行";
for(byte r : c.getBytes()) {
System.out.print(r+" ");
}
//遍历数组b
for(byte t : b) {
System.out.print(t+" ");
}
//用c[0]和c[1]的替换b[6]和b[7]
b[6]=c.getBytes()[0];
b[7]=c.getBytes()[1];
//遍历替换后的数组b
for(byte t : b) {
System.out.print(t+" ");
}
//创建一个输出字节流的对象
OutputStream io = new FileOutputStream("E:/赋值.txt");
//写出io调用write写出b
io.write(b);
//异常的catch块
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Writer和Reader
public static void main(String[] args) {
//try catch 是异常抛出
try {
//读进字符型的对象
Reader s = new FileReader("E:/1.txt");
int i = -1;
//写出字符型的对象
Writer w = new FileWriter("E:/2.txt");
while ((i = (s.read())) != -1) {
System.out.println((char) i);
}
//冲洗
w.flush();
//异常的catch块
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
BufferReader 控制台输入方式(Scanner类似)
public static void main(String[] args) {
try {
//字节型转换成字符型输入
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader brs = new BufferedReader(isr);
String st = brs.readLine();
System.out.println(st);
} catch (IOException e) {
e.printStackTrace();
}
}
}