Java-IO流

IO流

1.IO流概述和分类
  • 数据的流向
    • 输入流:读数据
    • 输出流:写数据
  • 按照数据类型来分:
    • 字节流
      • 字节输入流
      • 字节输出流
    • 字符流
      • 字符输入流
      • 字符输出流

注意:一般IO流的分类是按照数据类型来分的

2.递归
  • 方法定义中调用方法本身的现象
  • 解决递归问题需要找到两个内容:
    • 递归出口:否则会发生内存溢出
    • 递归规则:与原问题相似的规模较小的问题

字节输出流写数据

FileOutputStream:文件输出流用于将数据写入File

  • FileOutputStream(String name):创建文件输出流以指定的名称写入文件

使用字节输出流写数据的步骤:

  • 创建字节输出流对象(调用系统功能创建对象,创建字节输出流对象,让字节输出流对象指向文件)
  • 调用字节输出流对象的写数据方法
  • 释放资源(关闭此文件输出流并释放与此流相关联的任何系统资源)
3.字节输出流写数据的三种方式

在这里插入图片描述

4.解决用字节输出流写数据的两个问题
/**
 * 解决用字节流写数据的两个问题:
 * 1.实现换行
 * -加上"\r\n".getBytes()
 * 2.实现追加(及在文本最后写入数据)
 * -使用FileOutputStream(String name, boolean append)
 * --append为true,则在文件最后写入数据
 * --append为false,则在文件最开始写入数据
 */

在这里插入图片描述

5.使用字节输出流写数据时异常的处理
/**
* finally语句保证执行
* 在字节流写数据时处理异常用try{}...catch{}...finally{}写的代码健壮性更好
* 要注意的是:
* 1.将字节输出流定义放在try{}...catch{}...finally{}结构的外面,因为catch{}和finally{}无法直接使用try{}中生成的对象
* 2.将定义在try{}...catch{}...finally{}结构外面的字节输出流对象初始化,初始化的值为null
* 3.finally{}中释放资源前应对字节输出流对象进行判断,如果非空才能进行释放,否则产生空指针异常
*/

在这里插入图片描述

字节输入流读数据

6.字节输入流读数据的基本方法
/**
*以下代码实现了单个读取文件中所有字符并打印在控制台
*/
FileInputStream fis = new FileInputStream("path");
int by;
while((by = fis.read()) != -1) {
	System.out.print((char)by);
}
7.字节流读数据(一次读一个字节数组数据)
/**
 * 字节流读数据(一次读一个字节数组数据)
 * 什么是容器?
 * 1.创建字节数组,长度为1024的整数倍
 * 2.定义一个整数型变量len
 * 3.使用read(byte[] b)方法,从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。
 * 4.使用String(byte[] n, int offset, int len)将字节数组转化为字符串,再打印出来
 */

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值