作用:
1、将字节流转换成字符流,前提是字节流给你的全是纯文本的内容,它是处理纯文本的,非纯文本的处理不了。
2、在处理流的过程中可以指定字符集。
System.in字节输入流;System.out字节输出流。
new URL(“http://www.baidu.com”).openStream();
网络流、字节流、节点流。
package com.sxt.io;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
/**
* 转换流: InputStreamReader OutputStreamWriter
* 1、以字符流的形式操作字节流(纯文本的)
* 2、指定字符集
* @author TW
*
*/
public class ConvertTest {
public static void main(String[] args) {
//操作System.in 和System.out
try(BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter writer =new BufferedWriter(new OutputStreamWriter(System.out));){
//循环获取键盘的输入(exit退出),输出此内容
String msg ="";
while(!msg.equals("exit")) {
msg = reader.readLine(); //循环读取
writer.write(msg); //循环写出
writer.newLine();
writer.flush(); //强制刷新
}
}catch(IOException e) {
System.out.println("操作异常");
}
}
}
package com.sxt.io;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
/**
* 转换流: InputStreamReader OutputStreamWriter
* 1、以字符流的形式操作字节流(纯文本的)
* 2、指定字符集
* @author TW
*
*/
public class ConvertTest02 {
public static void main(String[] args) {
try(BufferedReader reader =
new BufferedReader(
new InputStreamReader(
new URL("http://www.baidu.com").openStream(),"UTF-8"));
BufferedWriter writer =
new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream("baidu.html"),"UTF-8"));){
//3、操作 (读取)
String msg ;
while((msg=reader.readLine())!=null) {
//System.out.println(msg);
writer.write(msg); //字符集不统一出现乱码
writer.newLine();
}
writer.flush();
}catch(IOException e) {
System.out.println("操作异常");
}
}
public static void test2() {
//操作网络流 下载百度的源代码
try(InputStreamReader is =
new InputStreamReader(new URL("http://www.baidu.com").openStream(),"UTF-8");){
//3、操作 (读取)
int temp ;
while((temp=is.read())!=-1) {
System.out.print((char)temp);
}
}catch(IOException e) {
System.out.println("操作异常");
}
}
public static void test1() {
//操作网络流 下载百度的源代码
try(InputStream is =new URL("http://www.baidu.com").openStream();){
//3、操作 (读取)
int temp ;
while((temp=is.read())!=-1) {
System.out.print((char)temp); //字节数不够出现乱码
}
}catch(IOException e) {
System.out.println("操作异常");
}
}
}