Java的I/O流

          

字节流

字符流

字节流转换为字符流的案例

,表示任何有能力产出数据的数据源对象或有能力接收数据的对象。流的本质是数据的传输,根据数据传输的特性可以将流抽象为各种类。

Java中的I/O操作主要指的是java.io包下的内容。

在Java中,输入也叫作读取,输出也叫作写出。

流的作用

为数据和目的地建立一个传输的通道。根据数据的流向,可以将流分为输入流、输出流。输入流指的是把数据从其他设备上(硬盘等)读取到内存中;输出流指的是把数据从内存中写出到其他设备。

流的分类

根据数据的分类,可以分为字节流和字符流。字节流即以字节为单位来读写数据的流;字符流即以字符为单位读写数据的流。

 1字符 = 2字节
 1字节(byte)= 8位(bit)

字节流

创建方式

 //先创建一个File对象,例如
 File file = new File("D:\\programFiles\\test.txt");
 //将File对象传入 FileInputStream/FileOutputStream 对象
 //输入流
 InputStream inputStream = new FileInputStream(file);
 //输出流
 OutputStream outputStream = new FileOutputStream(file);

读取

 //InputStream 类中的read()方法可以帮助我们进行读取的操作
 //该方法的返回值是int类型的,若返回-1则表示没有数据可读
 //调用该方法需要传入一个字节数组来进行数据的接收
 byte[] b = new byte[size];
 int length = inputStream.read(b);
 while (-1 != length) {
     length = inputStream.read(b);
 }

写入

 //InputStream 类中的write()方法可以帮助我们进行写入的操作
 //该方法也需要一个字节数组来进行数据的发送,即把数组中的数据写入目标文件
 String str = "zhangsan  lisi  wangwu";
 byte[] b = str.getBytes();
 outputStream.write(b);

字符流

创建方式

 //创建File对象
 File file = new File("D:\\test.txt");
 //输入流
 Reader reader = new FileReader(file);
 //输出流,第二个布尔型的参数为是否在文件末尾增加,若传入false或默认则直接覆盖文件内容
 Writer writer = new FileWriter(file,true);

读取和写入

 //read()方法,需要传入一个字符数组
 reader.read(c);
 //write()方法,格式: write("测试数据",下标,长度);
 writer.write("测试数据",0,2);

字节流转换为字符流的案例

 File file = new File("D:\\test.txt");
 //创建字节流
 OutputStream fileOutputStream = null;
 //创建字符流
 OutputStreamWriter writer = null;
 try {
     //传入File对象
     fileOutputStream = new FileOutputStream(file);
     //字节流传入字符流
     writer = new OutputStreamWriter(fileOutputStream);
     //字符流写入字符串 "123456"
     writer.write("123456");
 } catch (FileNotFoundException e) {
     e.printStackTrace();
 } catch (IOException e) {
     e.printStackTrace();
 } finally {
     //释放资源
     try {
         fileOutputStream.close();
         writer.close();
     } catch (IOException e) {
         e.printStackTrace();
     }
 }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值