字符流的底层还是使用字节流实现的,所以字节流时刻转换为字符流的。转换流主要使用到
OutputStreamWriter:将字节输出流转换为字符输出流形式
InputStreamReader:将输入的字节流转换为字符流输入形式
1.OutputStreamWriter(字节输出流-->字符输出流)
OutputStreamWriter是字节流通向字符流的桥梁。如果不指定字符集编码,该解码过程将使用平台默认的字符编码
构造方法:
OutputStreamWriter os = new OutputStreamWriter(OutputStream out);//构造一个默认编码集
OutputStreamWriter os= new OutputStreamWriter(OutputStream out,String charsetName);//构造一个指定编码集的OutputStreamWriter类。
示例代码:
public static void main(String[] args) { try { //构建一个字节输出流 OutputStream os=new FileOutputStream("L:\\test.txt"); String dataString="好好学习,天天向上!"; //通过字节输出流创建字符输出流 Writer w=new OutputStreamWriter(os); w.write(dataString);//输出到文件 //关闭流 w.close(); os.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
2.InputStreamReader(字节输入流-->字符输入流)
InputStreamReader 将字节流转换为字符流。是字节流通向字符流的桥梁。如果不指定字符集编码,该解码过程将使用平台默认的字符编码。
构造方法:
InputStreamReader isr = new InputStreamReader(InputStream in);//构造一个默认编码
InputStreamReader isr = new InputStreamReader(InputStream in,String charsetName);//构造一个指定编码集的InputStreamReader类。
示例代码:
public static void main(String[] args) { try { //构建一个字节输入流 InputStream is=new FileInputStream("L:\\test.txt"); //通过字节输入流构建字符输入流 Reader r=new InputStreamReader(is); //顺便用下缓冲流 BufferedReader br=new BufferedReader(r); //读出一行数据 System.out.println(br.readLine()); //关闭流 br.close(); r.close(); is.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
运行结果:
相关推荐
InputStreamReader 是一个连接字节流和字符流的桥梁,它将字节流转变为字符流。FileReader 可以说是一个达到此功能、常用的工具类,在其源代码中明显使用了将FileInputStream 转变为Reader 的方法。我们可以从这个类...
目录java IO流学习笔记——(3)字节缓冲流&字符缓冲流&转换流&数据流字节缓冲流 —BufferedInputStream&BufferedOutputStream字符缓冲流—BufferedReader&BufferedWriter转换流—InputStreamReader&...
3. IO流工具类的抽取,将所有的关流(字节流和字符流)方法抽取出来,优化代码 4. 字符流:(重点) * 使用场景:使用于处理文本相关的文件 * * Reader 抽象类: * |子类 * ...
文章目录IO基础(字符流)一、字符流二、常用的字符流类的继承关系三、字符流 FileReader 和 FileWriter四、字符缓冲流 BufferedReader 和 BufferedWriter五、 字符字节转换流(InputStreamReader/...
第三,是否需要转换流:InputStreamReader, OutputStreamWriter? 第四,数据来源(去向)是什么:文件?内存?网络? 首先是字节流: InputStream的实现类(System.in返回一个输入流): 1)ByteArrayInputStream...
1. Android中文件读写的原理: (1)....字节流转换成字符流可以用InputStreamReader,OutputStreamWriter。 一般我们在使用的时候通常用字节流。 3. 文件读写的步骤: (1).首先建立通道。 (2).然后建
BufferedInputStream字符缓冲输出流:BufferedWriter字符缓冲输入流:BufferedReader文件复制文件排序转换流原理字符转换输出流:OutputStreamWriter字符转换输入流:InputStreamReader转换文件编码 缓冲流 原理 ...
1.3 文件和流 1.3.1 什么是数据流 1.3.2 InputStream 的方法有: 1.3.3 OutputStream 的方法: 1.3.4 File 类 1.3.5 文件流的建立 1.3.6 缓冲区流 1.3.7 原始型数据流 1.3.8 对象流 1.3.9 字符流 InputStreamReader/...
OutputStreamWriter OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。 PipedInputStream 管道输入流应该连接到管道输出流;管道输入流提供要写入管道输出流的...
1.3 文件和流 51 1.3.1 什么是数据流 51 1.3.2 InputStream 的方法有: 51 1.3.3 OutputStream 的方法: 51 1.3.4 File 类 51 1.3.5 文件流的建立 52 1.3.6 缓冲区流 53 1.3.7 原始型数据流 53 1.3.8 对象流 54 1.3.9...
import java.io.InputStreamReader; import java.io.OutputStreamWriter; import com.vince.*; /** * 将本地文件以哪种编码输出 * @param inputfile 输入文件的路径 * @param outfile 输出文件的路径 * @param ...
InputStreamReader和OutputStreamWriter 161 JAVA对象的序列化和反序列化 161 为什么需要序列化和反序列化 161 对象的序列化主要有两种用途 161 序列化涉及的类和接口 162 序列化/反序列化的步骤和实例 162 综合的...
派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,...
D) 程序将字符型转换为unicode编码并和b的数值相加的和输出。 题目3: 下面的说法中,错误的是:d(选择1项) A) 在Java中标志符可以是字母、下划线、数字或$符号。 B) 在Java中布尔类型不能和数字之间不能来回...
派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即...
import java.io.*; /** * FileUtil. Simple file operation class. * * @author BeanSoft * */ public class FileUtil { /** * The buffer. */ protected static byte buf[] = new byte[1024]; /**...
// 下面是得到用于和COM口通讯的输进、输出流。 try { in = new InputStreamReader(serialPort.getInputStream()); out = new OutputStreamWriter(serialPort.getOutputStream()); } catch (IOException e) { ...