字节流字符流

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();



posted @ 2021-04-08 19:22  纯白白  阅读(44)  评论(0)    收藏  举报