outputstreamwriter和filewriter_类文件解析
文件 解析 OutputStreamWriter
2023-06-13 09:13:39 时间
大家好,又见面了,我是你们的朋友全栈君。
|--字符流( 字符流 = 字节流 +编码表。)
|--字符输入流
Reader ------抽象类
int read():一次读取一个字符
int read(char[] chs):一次读取一个字符数组
|--InputStreamReader ------extends Reader
InputStreamReader = FileInputStream + 编码表(GBK)
|--FileReader ------extends InputStreamReader
FileReader = FileInputStream + 编码表(GBK)
|--BufferedReader ------extends Reader
String readLine():一次读取一个字符串
|--StringReader ------extends Reader
|--字符输出流
Writer ------抽象类
void write(int ch):一次写一个字符
void write(char[] chs,int index,int len):一次写一个字符数组的一部分
|--OutputStreamWriter ------extends Writer
OutputStreamWriter = FileOutputStream + 编码表(GBK)
|--FileWriter ------extends OutputStreamWriter
FileWriter = FileOutputStream + 编码表(GBK)
|--BufferedWriter ------extends Writer
void newLine():写一个换行符
void write(String line):一次写一个字符串
|--PrintWriter ------extends Writer
|--StringWriter ------extends Writer
- OutputStreamWriter :OutputStreamWriter = FileOutputStream + 编码表(GBK)
- 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。它使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集。
- 每次调用 write() 方法都会导致在给定字符(或字符集)上调用编码转换器。在写入底层输出流之前,得到的这些字节将在缓冲区中累积。可以指定此缓冲区的大小,不过,默认的缓冲区对多数用途来说已足够大。注意,传递给 write() 方法的字符没有缓冲。
- 为了获得最高效率,可考虑将 OutputStreamWriter 包装到 BufferedWriter 中,以避免频繁调用转换器。例如: Writer out = new BufferedWriter(new OutputStreamWriter(System.out));
- 构造方法: -OutputStreamWriter(OutputStream out):根据默认编码把字节流的数据转换为字符流 -OutputStreamWriter(OutputStream out,String charsetName):根据指定编码把字节流数据转换为字符流
- 常用方法: -public void write(int c):写一个字符 -public void write(char[] cbuf):写一个字符数组 -public void write(char[] cbuf,int off,int len):写一个字符数组的一部分 -public void write(String str):写一个字符串
@Test
public void testOsw()throws Exception{
String path = this.getClass().getResource("/test7").getPath();
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(new File(path)));
osw.write("a");
osw.write(98);
osw.write("\n");
osw.write(new char[]{'a','b','c','d','e'});
osw.write("\n\r");
osw.write(new char[]{'a','b','c','d','e'},0,2);
osw.write("\n\r");
osw.write("hello world");
osw.write("\n\r");
osw.write("hello world",0,5);
osw.write("\n\r");
osw.flush();
osw.close();
}
@Test
public void testBw()throws Exception{
String path = this.getClass().getResource("/test7").getPath();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(path))));
bw.write("a");
bw.write(98);
bw.write("\n");
bw.newLine();
bw.write(new char[]{'a','b','c','d','e'});
bw.write("\n\r");
bw.write(new char[]{'a','b','c','d','e'},0,2);
bw.write("\n\r");
bw.write("hello world");
bw.write("\n\r");
bw.write("hello world",0,5);
bw.write("\n\r");
bw.flush();
bw.close();
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/194876.html原文链接:https://javaforall.cn
相关文章
- 解析MP4文件中的sps和pps[通俗易懂]
- python pyc文件解析_pyc文件
- python解析json文件
- 解决selenium下载文件出现此类型的文件可能会损害您''的问题
- 文件同步是什么?解析6个最佳的文件同步应用软件
- Plist Editor Pro(plist文件编辑工具)V2.5[64 bit] for Windows Crack
- java对properties文件进行解析详解编程语言
- Javascript写入txt和读取txt文件示例详解编程语言
- php解析mpp文件详解编程语言
- C++学生信息管理系统(文件版)源码下载、源码解析和设计思路
- 清理乱码:Linux中删除乱码文件(linux删除乱码文件)
- 使用 Linux 解析 INI 文件的步骤(ini文件linux)
- Linux文件管理实战:必备技能(linux文件管理)
- MySQL中解析XML文件的方法(mysql解析xml)
- Linux文件操作:简单易学的复制并改名技巧(linux复制并改名)
- 「深入解析Oracle日志文件的方法和技巧」(oracle日志文件分析)
- Oracle无法控制文件:实现数据保护(oracle没有控制文件)
- 解析MySQL表文件的位置(mysql表文件位置)
- Linux下解析IMG文件的方法(linux打开img文件)
- 使用oracle解析lst文件的方法(.lst文件oracle)
- 掌握Oracle数据库的命脉控制文件(oracle中的控制文件)
- Oracle中利用UDF实现中文文件写入(oracle中文件写入)
- Oracle trc文件解析排错必备工具(oracle .trc:)
- jQuery解析xml文件
- Android使用Pull方法解析XML文件的方法
- C#解析json文件的实现代码
- python解析文件示例
- java读取csv文件示例分享(java解析csv文件)