Java IO流

IO流

本人博客:添砖java

基本理解

流是程序操作文件的一种方式, java程序与文件间输入输出通过IO流控制

一览图

请添加图片描述

操作文件

mkdir():创建一级目录
mkdirs():创建多级目录
delete():删除文件或目录

分类

请添加图片描述

!!!切记关流

节点流和处理流

一览图

请添加图片描述

节点流

  1. 为了提高效率, 通常用字节数组来进行操作
  2. (循环)read(byte/byte[] b)读取文件, 读完返回-1; (循环)write(byte[] b, int off, int length)将数据写入文件
while ((readLen = fileInputStream.read(buf)) != -1) {
	System.out.print(new String(buf, 0, readLen));//显示
}

处理流

概念: 为了进一步提高读写效率,诞生了处理流, 拥有更强大灵活的读写功能
设计模式: 通过对节点流进行包装,使用修饰器设计模式(多态的动态绑定机制), 因而节点流就成为了低级模式(类似于底层)

常用类
BufferedReader/Writer:

(循环)readline()读取文件, 读完返回null; write()类似,newline()换行

对象流

ObjectOutputStream 序列化保存; ObjectInputStream 反序列化读取
注:
请添加图片描述

转换流(InputStreamReader/Writer)
  1. 可指定转换字符, 解决乱码
  2. 可将字节流转换成字符流
打印流(PrintStream/PrintWriter)
  1. 只有输出流
  2. 默认情况下打印位置是显示器, 可更改打印位置]
//默认情况
PrintStream out = System.out;
out.write("韩顺平,你好".getBytes());
out.close();
//改, 打印在e:\\f1.txt
System.setOut(new PrintStream("e:\\f1.txt"));
System.out.println("hello~");

properties

  1. 一种方便读取数据的类
  2. 用键值形式储存
  3. 循环读取:

//读取 mysql.properties 文件,并得到 ip, user 和 pwd
BufferedReader br = new BufferedReader(new FileReader("src\\mysql.properties"));
String line = "";
while ((line = br.readLine()) != null) { //循环读取
	String[] split = line.split("=");
	//如果我们要求指定的 ip 值
	if("ip".equals(split[0])) {
	System.out.println(split[0] + "值是: " + split[1]);
	}
}
br.close();
  1. 指定读取
//1. 创建 Properties 对象
Properties properties = new Properties();
//2. 加载指定配置文件
properties.load(new FileReader("src\\mysql.properties"));
//3. 把 k-v 显示控制台
properties.list(System.out);
//4. 根据 key 获取对应的值
String user = properties.getProperty("user");//getProperty返回string
String user2 = properties.get("user");//get返回Object
System.out.println("用户名=" + user);

本文截图均来自于【零基础 快速学Java】韩顺平 零基础30天学会Java

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值