12.3节 字节流

 

12.3节 字节流

字节流可以处理各种对象

抽象基类:InputStream和OutputStream

读取单个字符返回int类型:防止返回-1而终止

字节流输出:

int n=12;

      byte arr[]={65,66,67,68};

      //File输出流                 FileOutputStrea      FileOutputStream fos=new FileOutputStream("res/data.txt");

      fos.write(n);

      fos.write(arr);

      fos.write(arr,1,2);

      fos.flush();

      fos.close();

字节流输入:

FileInputStream fis=new FileInputStream("res/data.txt");

      int m=fis.read();//一次读一个

      byte[] arr1=new byte[10];

      int len=fis.read(arr1);//实际读取的个数

      System.out.println(m);

      for(int i=0;i<len;i++){

         System.out.println(arr1[i]);

      }fis.close();

上面没有判定是否读到文件末尾

      Int n=0;

      While(n=fis.read())!=-1{

}

文件中还有多少个字节可读

      fis.available();

   System.out.println(fis.available());

还有多少可读就让数组多大

   Byte[] arr=new Buty[fis.available()];

Fis.read(arr);

System.out.println(new String(arr));

复制---从源文件中读取数据写到目标文件中

输入流—-FileInputStream    输出流—FileOutputStream   BufferedInputStream

   FileInputStream fis=null;

   FileOutputStream fos=null;

   BufferedInputStream bis=null;

   BufferedOutputStream bos=null;

   Fis=new FileInputStream(“res/0.gif”);

   Bis=new BufferedInputStream(fis);

 

   Fos=new FileOutputStream(“res/1.gif”);

   Bos=new BufferedOutputStream(fos);

   Int n=0;

   While((n=bis.read())!=-1){

   Bos.write(n);

 

从键盘输入

       Int n=System.in.read();

       System.out.println(n);

       Byte arr[]=new Byte[10];

       Int len=System.in.read(arr);//实际返回的字符串

       System.out.println(new String(arr,0,len));

把字符数据写到磁盘文件中

输出流-----转换流OutputStreamWriterr-----字节流对象做参数---FileOutputStream

       FileOutputStream fos=new FileOutputStream(“res/demo.txt”);

OutputStreamWriter osw=new OutputStreamWriter(fos,”UTF-8”);//UTF-8是指定的编码方式【FileWriter fw=new FileWriter(“demo.txt”);】

Osw.write(“hello”);

Osw.write(“中国”);

Osw.close();

       读出【读和写的编码方式应该相同,否则乱码】

              FileInputStream fis=new FileInputStream(“res/demo.txt”);

              InputStreamReader isw=new InputStreamReader(fis);

              Char cbuf[]=new char[10];

              Int len=isw.read(cbuf);

              System.out.println(new String(cubf,0,len));

       如果使用指定编码表,必须使用转换流。

       将键盘录入的数据存储到一个文件中

              (1)数据源    System.in

                     InputStreamReader isr=new InputStreamReader(System.in);

                     BufferedReader br=new BufferedReader(isr);

               (2)  数据宿   文件输出   Writer  FileWriter

                     FileWriter fw=new FileWriter(“demo.txt”);

                     BufferedWriter bw=new BufferedWriter(fw);

                     int c;

                     ch=br.read();

                     bw.writer(ch);

                     br.close();

                     bw.close();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值