字符流的底层还是使用字节流实现的,所以字节流时刻转换为字符流的。转换流主要使用到
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/OutputStreamWriter):用于在字节流和字符流之间转换。 3. 处理流: - Filter流:这些流没有自己的数据源或目的地,而是包装其他流,提供额外的功能,如数据过滤、压缩等。例如,...
`InputStreamReader`和`OutputStreamWriter`就是这样的转换流,它们分别将字节流转换为字符流,反之亦然。 六、对象序列化流(Object Stream) Java还提供了一种特殊的流,即对象流,用于对象的序列化和反序列化。`...
在Java中,IO流分为两大类:字节流和字符流,每种流又有输入流和输出流之分,分别用于数据的读取和写入。 1. **字节流**: - 字节流处理的是8位的字节数据,是最基本的流类型。Java中的`InputStream`和`...
Java IO流的使用涉及到流的打开、数据的读写操作和流的关闭。正确地使用流可以避免内存泄漏和其他资源问题。在实际开发中,通常会结合try-catch-finally语句来确保即使发生异常也能正确关闭流。 总结来说,Java IO...
- InputStreamReader和OutputStreamWriter是字节流与字符流之间的桥梁,它们可以将字节流转换为字符流,反之亦然。 - 比如,我们可以通过InputStreamReader(FileInputStream)和PrintWriter(OutputStreamWriter)...
- **字符转换流**:InputStreamReader和OutputStreamWriter作为桥梁,用于在字节流和字符流之间进行转换,它们可以根据指定的字符集解码或编码数据。 - **字符缓冲流**:BufferedReader和BufferedWriter提供高效的...
Java IO流还提供了一些转换流,如InputStreamReader和OutputStreamWriter,它们可以将字节流与字符流之间进行转换。例如,通过InputStreamReader,我们可以将一个InputStream转换为Reader,从而处理字符数据。 除了...
例如,在创建`FileReader`或`FileWriter`时,可以通过传递`Charset`或使用相应的`InputStreamReader`和`OutputStreamWriter`来指定编码。 #### 八、OOP的继承性和装饰模式的区别 1. **继承性**:是面向对象编程的...
管道流(PipedInputStream和PipedOutputStream)允许线程间的数据通信,而转换流(InputStreamReader和OutputStreamWriter)则在字节流和字符流之间起桥梁作用,允许它们互相连接。此外,Filter流(过滤流)如...
转换流(Wrapper Stream)如InputStreamReader和OutputStreamWriter,用于在字节流和字符流之间进行转换。这些转换流允许我们指定字符编码,使得数据可以在不同的字符集之间正确传输。 过滤流(Filter Stream)是一...
5. 复用流(Filter Stream):这些是带有额外功能的流,如BufferedInputStream和BufferedOutputStream提供缓冲,InputStreamReader和OutputStreamWriter进行字符编码转换,PrintStream用于方便的打印输出。...
- 转换流:InputStreamReader和OutputStreamWriter用于在字节流和字符流之间转换。 3. **复制文件**: - 使用`java.nio.file.Files`类的`copy`方法可以方便地实现文件复制,也可以通过字节流或字符流的组合实现...
四、转换流( InputStreamReader 和 OutputStreamWriter ) Java的字符流与字节流之间可以通过转换流进行转换。InputStreamReader是字符流的父类,它接受一个字节流并将其转换为字符流;OutputStreamWriter则相反,...
- InputStreamReader和OutputStreamWriter作为字节流和字符流之间的桥梁,可以根据指定的字符集进行转换。 五、对象序列化流 - ObjectInputStream和ObjectOutputStream实现了Java对象的序列化和反序列化,使得对象...
在Java IO流体系结构中,还有一类特殊的流,叫做转换流(InputStreamReader/OutputStreamWriter),它们位于字节流和字符流之间,负责将字节流转换为字符流,或者反之。 3. 链接流(PipedStream):允许线程间的...
在Java IO流中,节点流是指离数据源或程序最近的流处理流,主要有两种类型:字节流和字符流。字节流可以处理一切类型的数据,如纯文本、音频、视频等,而字符流只能处理纯文本数据。 2. 字节流: 字节流是Java IO...
字符流由Reader和Writer类族构成,如InputStreamReader和OutputStreamWriter,它们分别用于将字节流转换为字符流。字符流在处理Unicode字符集时特别有用,因为它可以正确处理多种语言的字符编码。例如,使用 ...
为了支持不同类型的流之间的互操作,Java提供了`InputStreamReader`和`OutputStreamWriter`来实现从字节流到字符流的转换。 - **InputStreamReader**:将字节流转换为字符流。 - **OutputStreamWriter**:将字符...
- **InputStreamReader/OutputStreamWriter**:在字节流和字符流之间起转换作用,可以指定字符编码,如GBK、UTF-8等。 4. **对象流**: - **ObjectInputStream/ObjectOutputStream**:支持序列化,允许程序将对象...
常见的转换流类型有 InputStreamReader 和 OutputStreamWriter。 十、数据流与字节数组流 数据流是一种特殊的流类型,用于存取 Java 原始数据类型,如 long、boolean 等。数据流是字节流,提供了可以存取 Java ...