Java IO流---字符流
Writer:写入字符流的抽象类,子类必须实现的方法有 write(char [],int,int) flush() close(),
对文件的操作,一般由其子类FileWriter完成。
Reader:读取字符流的抽象类,子类必须实现的方法有 read(char [].int,int) close(),
对文件的操作,一般由其子类FileReader完成。
字符流每次操作的最小单位是一个字符,文件字符操作流自带缓存,在缓存满了之后或者手动刷新或者关闭流,数据才会写入文件。
字符流的底层实现是基于字节流。
实际操作中如何选择 字节流和字符流???
一般操作非文本文件(图片、视频)使用字节流,操作文本文件使用字符流。
代码示例:
package com.seven.javaSE; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.Reader; import java.io.Writer; public class CharStream { public static void main(String[] args) { out(); in(); } //字符输出流 public static void out() { File file = new File("C:/TestFile/hello.txt"); try { Writer out = new FileWriter(file,true); String str = "一步一步,步步为营。"; //字符流可以直接将字符串写入文件,不用将字符串转换成字节数组 out.write(str); out.close(); System.out.println("字符写入成功"); } catch (IOException e) { e.printStackTrace(); } } //字符输入流 public static void in() { File file = new File("C:/TestFile/hello.txt"); try { Reader read= new FileReader(file); StringBuffer sb = new StringBuffer(); //字符数组即使长度为1,也可以完成文件读取任务 char [] cc = new char[1]; int len=-1; while((len=read.read(cc))!=-1) { sb.append(cc, 0, len); } read.close(); System.out.println(sb); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
本文来自博客园,作者:藤原豆腐渣渣,转载请注明原文链接:https://www.cnblogs.com/javafufeng/p/16383603.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!