当前位置: 首页 > news >正文

Java基础 Day23

一、字符缓冲流

字符缓冲流在源代码中内置了字符数组,可以提高读写效率

1、构造方法

BufferedReader(Reader reader)

对传入的字符输入流进行包装

BufferedWriter(Writer writer)

对传入的字符输出流进行包装

注意: 缓冲流不具备读写功能, 它们只是对普通的流对象进行包装

真正和文件建立关联的, 还是普通的流对象

2、特有方法

(1)BufferedReader

public String readLine() 

读取一行字符串, 读取到末尾返回 null

(2)BufferedWriter

public void newLine() 

写出换行符 (具有跨平台性)

二、转换流

1、作用

按照指定的字符编码进行读写操作

将字节流转换成字符流进行操作

2、构造方法

InputStreamReader (InputStream in, String charsetName)

按照指定的字符编码读取

OutputStreamReader (OutputStream out, String charsetName)

按照指定的字符编码写出

三、序列化流

可以在流中,以字节的形式直接读写对象

1、构造方法

public ObjectInputStream(InputStream in) 

对象输入流关联文件, 关联方式使用字节输入流

public ObjectOutputStream(OutputStream out)

对象输出流关联文件, 关联方式使用字节输出流

2、成员方法

(1)ObjectInputStream

Object readObject() 

从流中读取对象(反序列化)

注意:readObject方法读到末尾会抛出EOFException异常

(2)ObjectOutputStream

void writeObject(Object obj) 

在流中将对象写出 (序列化)

3、注意事项

(1)类需要实现Serializable接口才能序列化

(2)使用transient关键字修饰成员变量,该成员变量不会序列化

(3)实现Serializable接口,类会有一个serialVersionUID(版本号),最好手动编写

四、打印流

1、简介

打印流可以实现方便、高效的打印数据到文件中去,并且可以指定字符编码

可以实现打印什么数据就是什么数据,原样打印

System.out 就是一个PrintStream 流的对象,关联到控制台

2、PrintStream 流

public PrintStream (OutputStream os)

打印流直接通向字节输出流管道

public PrintStream (File f, String csn)

打印流直接通向文件对象, 指定字符编码

public PrintStream (String filepath, String csn)

打印流直接通向文件路径, 指定字符编码

public void print\println(Xxx xx)

打印任意类型的数据出去

3、PrintWriter 字符打印流

public PrintWriter (OutputStream os)

打印流直接通向字节输出流管道

public PrintWriter (Writer w)

打印流直接通向字符输出流管道

public PrintWriter (File  f)

打印流直接通向文件对象

public PrintWriter (String filepath)

打印流直接通向文件路径

public void print\println(Xxx xx)

打印任意类型的数据出去

五、Properties 集合

本质就是一个Map集合,常用于加载配置文件

构造方法用空参构造

1、Properties 作为集合的使用

Object setProperty​(String key, String value)

添加(修改)一个键值对

String getProperty​(String key) 

根据键获取值

Set<String> stringPropertyNames()

获取集合中所有的键

2、Properties 和 IO 有关的方法

void load​(InputStream inStream)

从流中加载数据到集合(字节流)

void load​(Reader reader)

从流中加载数据到集合(字符流)

void store​(OutputStream out, String comments)

将集合的键值对写出到文件(字节流)

void store​(Writer writer, String comments)

将集合的键值对写出到文件(字符流)

public class PropertiesDemo {public static void main(String[] args) throws IOException {Properties prop = new Properties();prop.setProperty("username", "Tom");prop.setProperty("password", "123456");System.out.println(prop.getProperty("username"));System.out.println(prop.getProperty("password"));// 注意后缀名用 .propertiesFileWriter fw = new FileWriter("./day23/src/config.properties");prop.store(fw, "This is a test");fw.close();Properties prop2 = new Properties();FileReader fr = new FileReader("./day23/src/config.properties");prop2.load(fr);fr.close();System.out.println(prop2);}
}控制台输出:
Tom
123456
{password=123456, username=Tom}config.properties 文件内容:
#This is a test
#Wed May 28 22:48:32 GMT+08:00 2025
password=123456
username=Tom

 

相关文章:

  • 宏的高级应用 ——一种 C 语言的元编程技巧(X-Macro)
  • ArgoDB表类型及常用命令
  • Cancer Cell|从临床病例到AI空间组学 | 空间生物标志物如何精准预测HER2阳性乳腺癌ADC疗效?
  • v1.05 支付宝 绑定时写Nand flash卡死问题
  • ⭐️⭐️⭐️ 免费的AI Clouder认证 ⭐️⭐️⭐️ 第四弹【课时1:课程概览】for「大模型Clouder认证:基于通义灵码实现高效AI编码」
  • 关于余数的定理
  • xcode 编译运行错误 Sandbox: rsync(29343) deny(1) file-write-create
  • Δ-Σ ADC的工作原理
  • 002 flutter基础 初始文件讲解(1)
  • C++链式调用与Builder模式
  • 28、请求处理-【源码分析】-请求映射原理
  • P1613 跑路
  • pcl::PointCloud2 的结构与sensor_msgs::msg::PointCloud2一样,pcl::PointCloud<T>
  • LLM 对齐新范式:深入解析 DPO (Direct Preference Optimization) 的原理与实践
  • RISC-V特权模式及切换
  • [Java恶补day9] 438.找到字符串中所有字母异位词
  • 202505系分论文《论信息系统开发方法及应用》
  • 决胜2025:企业级BI产品深度评测与选型指南
  • pip国内镜像源配置
  • 数值积分实验
  • 怎么做网站编程/上海推广服务
  • win8风格门户网站/杭州seo工作室
  • 第三方商城网站建设/长春seo结算
  • 如何恢复wordpress/武汉seo 网络推广
  • 同一域名可以做相同网站吗/全媒体运营师培训机构
  • 国家和住房城乡建设部网站首页/百度一下照片识别