栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java的I/O流

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/782374.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号