[2025.1.18 JavaSE学习]标准I/O流 && 转换流 &&打印流 &&Properties配置文件

标准I/O流

  • System.in:标准输入
    • 默认设备:键盘
    • 类型:InputStream
  • System.out:标准输出
    • 默认设备:显示器
    • 类型:PrintStream
  • System.in编译类型为InputStream,而运行类型为BufferedInputStream
public final static InputStream in = null;
  • System.out编译类型为PrintStream,运行类型为PrintStream
public final static PrintStream out = null;


转换流

1、使用BufferedReader创建字符输入流读取文件,默认情况下按照UTF-8编码读取,但是如果文件改变编码标准后,使用字符输入流读取会产生乱码

2、字节流可以指定编码标准读取

3、转换流可以将字节流转换为字符流

4、处理纯文本数据时,如果使用字符流效率更高,并且可以有效解决中文问题,所以建议将字节流转换为字符流

  • InputStreamReader
    • Reader的子类
    • 有方法:InputStreamReader(InputStream, Charset),使用指定编码标准进行转换
String filePath = "a.txt";
//将FileInputStream(filePath)转成一个转换流,并指定编码标准
InputStreamReader isr = new InputStreamReader(new FileInputStream(filePath), "gbk");
//把InputStreamReader传入BufferedReader
BufferedReader br = new BufferedReader(isr);
//读取
String s = br.readLine();//此时输出不会乱码
br.close();
  • OutputstreamWriter
    • Writer的子类
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("a.txt"), "gbk");
osw.write("哈哈哈");
osw.close();


打印流

  • 打印流只有输出流,没有输入流
  • 打印的本质就是输出,print底层就是write
  • PrintStream,父类为OutputStream,不仅可以输出到屏幕,也可以输出到文件
//打印在屏幕上
PrintStream out = System.out;
out.print("abc".getBytes());
out.close();

//打印在文件中
System.setOut(new PrintStream("1.txt"));
System.out.println("abc");
  • PrintWriter,父类为Writer,不仅可以输出到屏幕,也可以输出到文件
//打印在屏幕上
PrintWriter pw = new PrintWriter(System.out);
pw.print("abc");

//打印在文件中
pw = new PrintWriter(new FileWriter("1.txt"));
pw.print("abc");
pw.close();


Properties配置文件

基本介绍

  • Properties为HashTable的子类
  • 读取配置文件的格式必须是“键=值”
    • 不需要有空格
    • 值不需要引号,默认类型就是String

基本方法

  • load:加载配置文件的键值对到Properties对象
  • list:将数据显示到指定设备
  • getProperty(key):根据键获取值
  • setProperty(key, value):设置键值对到Properties对象
  • store:将Properties中的键值对存储到配置文件。在IDEA中,保存信息到配置文件,如果含有中文,会存储为Unicode编码

基本应用

  • 读文件
Properties p = new Properties();
p.load(new FileReader(1.properties));
p.list(System.out);//显示在控制台
String user = p.getProperty();
  • 写文件
p.setProperty("user", "lzm");//创建键值对
p.store(new FileOutputStream(""2.properties"), "Annotation");//存储到新配置文件中,后面为注释
posted @   Luna-Evelyn  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示