IO操作-字节流字符流基本演示

xiaoxiao2021-02-28  7

字节流一般适用于操作二进制文件,如(图片,文件等)。所有字节流类都继承自InputStream或OutputStream两个抽象类。

InputStream类:FileInputStream子类,ByteArrayInputStream子类,System.in。。。

OutputStream类:FileOutputStream子类,ByteArrayOutputStream子类。。。

InputStream类常用的方法: int available(),返回此输入流下一个方法调用可以不受阻塞地从此输入流读取(或跳过)的估计字节数。    void close(),关闭此输入流并释放与该流关联的所有系统资源。  abstract  int read(),从输入流中读取数据的下一个字节。    int read(byte[] b),从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。    int read(byte[] b, int off, int len),将输入流中最多 len 个数据字节读入 byte 数组。 

  long skip(long n) ,跳过和丢弃此输入流中数据的 n 个字节。

字节流演示

import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.Reader; import java.io.Writer; public static void main(String[] args) { InputStream is = null; OutputStream os = null; try { is = new FileInputStream("F://test.txt"); //两种常用的构造参数:文件的String形式,文件对应的File对象 os = new FileOutputStream("F://test1.txt"); // 1K等于1024字节 System.out.println("可读取文件的大小:"+is.available()+"个字节"); //读写文件 byte[] buf = new byte[1024]; int len = 0; while((len = is.read(buf)) != -1){//当读到文件的尾部时,会返回-1 //将读取的写到另一个文件中 os.write(buf, 0, len); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ //关闭流 try { if(is != null){ is.close(); } if(os != null){ os.close(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 字符流所有的字符流类都继承自Reader和Writer两个抽象类。原先的I/O类库只能支持8位的字节流,所以不能很好的处理16位的Unicode字符。 Reader类:InputStreamReader子类,FileReader子类,CharArrayReader子类。。。 Writer类:OutputStream子类,PrintWriter子类,FileWriter子类,CharArrayWriter子类。。。 Reader的常用方法: abstract  void close(),关闭该流并释放与之关联的所有资源。   int read(),读取单个字符。    int read(char[] cbuf),将字符读入数组。  abstract  int read(char[] cbuf, int off, int len),将字符读入数组的某一部分。    int read(CharBuffer target),试图将字符读入指定的字符缓冲区。  long skip(long n),跳过字符。

演示

import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.Reader; import java.io.Writer; public static void main(String[] args) { Reader re = null; Writer wr = null; try { re = new FileReader("F:\\test.txt"); //也是有两种常用的构造方法,一个传字符串,一个传File对象 wr = new FileWriter("F:\\test1.txt"); char[] ch = new char[1024]; int len = 0; //读写文件 while((len = re.read(ch)) != -1){ //读到文件尾部返回-1 System.out.println(new String(ch, 0, len)); //将字符数组转为String打印 //写入文件 wr.write(ch, 0, len); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ //关闭流 try { if(re != null){ re.close(); } if(wr != null){ wr.close(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

转载请注明原文地址: https://www.6miu.com/read-2050274.html

最新回复(0)