字节流字符流
IO流概述
可以将这种数据传输操作看作一种数据的流动,按照流动的方向分为输入Input和输出Output
Java中的IO操作主要指的是java.io包下的一些常用类的使用,通过这些常用类对象对数据进行读取和写出
IO流的分类
按照流的方向来分可以分为:输入流和输出流
按照流动的数据类型来分可以分为:字节流和字符流
字节流
-输入流: InputSteam
-输出流: OutputSteam
字符流
-输入流 :Reader
-输出流 :Writer
1. //FileOutPutStream
FileOutputStream fos = new FileOutputStream("E://a.txt"); //a.txt后面加,true,true为追加,如果不加,每次运行都会覆盖之前写的
byte[] bytes = "ABCDE".getBytes(); //byte[] bytes = {65,66,67,68};
fos.write(bytes,1,2); //从数组的1下标开始,写两个
byte[] bytes1 = {65,66};
fos.write(bytes1);
fos.close(); //如果关闭写在上面,会报错
System.out.println("已经写出");
2. //FileInPutStream
2.1 //一次读取一个字节
FileInputStream fis = new FileInputStream("E://a.txt");
/*循环写法
while (true) {
byte b = (byte) fis.read(); //返回值应该是int型,将其强制转换
if (b == -1) {
break;
}
System.out.println((char) b);
}
*/
//一个字节一个字节读出写法
bybe b1 = (byte) fis.read();
System.out.println((char) b1);
byte b2 = (byte) fis.read();
System.out.println((char) b2);
fis.close();
2.2 //一次读一组字节
byte[] b1 = new byte[10];
int len = fis.read(b1); //10
System.out.println(new String(b1,0,len));
len = fis.read(b1); //10
System.out.println(new String(b1,0,len));
len = fis.read(b1); //5
System.out.println(new String(b1,0,len));
fis.close();

浙公网安备 33010602011771号