package com.io.bytes;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
/**
* 获取控制台的输入
* @author wjw
*/
public class System_in {
public static void main(String[] args) throws IOException {
methodWriter();
}
/*
* 用转换流对象OutputStreamWriter将字符流转换成字节流
*/
public static void methodWriter() throws IOException{
// OutputStream is=System.out;
// OutputStreamWriter isr=new OutputStreamWriter(is);
// BufferedWriter br=new BufferedWriter(isr);
//把上面三居合成一句,这是最常用写法
BufferedWriter br_writer=new BufferedWriter(new OutputStreamWriter(System.out));//把System。out换成new FileOutputStream("路径名")即可把控制台输入的数据放到文件中
BufferedReader br_reader=new BufferedReader(new InputStreamReader(System.in));//把System.in欢唱new FileInputStream("路径名")即可把文件中的数据读取到控制台
// BufferedReader br_reader=new BufferedReader(new InputStreamReader(new FileInputStream("g:\\java\\yes.txt")));//把System.in欢唱new FileInputStream("路径名")即可把文件中的数据读取到控制台
// BufferedWriter br_writer=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("g:\\java\\yes.txt")));//把System。out换成new FileOutputStream("路径名")即可把控制台输入的数据放到文件中
String str=null;
while(null!=(str=br_reader.readLine())){
if("over".equals(str)){
break;
}
br_writer.write(str);//注意此时数据在缓冲区中,需要刷新才能显示
br_writer.newLine();//增加换行
br_writer.flush();
}
br_reader.close();
br_writer.close();
}
/*
* 用转换流对象InputStreamReader将字节流转换成字符流
*/
public static void methodReader() throws IOException{
// InputStream is=System.in;
// InputStreamReader isr=new InputStreamReader(is);
// BufferedReader br=new BufferedReader(isr);
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));//把上面三居合成一句,这是最常用写法
String str=null;
while(null!=(str=br.readLine())){
if("over".equals(str)){
break;
}
System.out.println(str);
}
br.close();
}
/*
* 用读取一行的原理读取控制台数据
*/
public static void method1() throws IOException{
InputStream is=System.in;
StringBuilder sb=new StringBuilder();
int num=0;
while(true){
num=is.read();
if('\r'==num){
continue;
}
if('\n'==num){
if("over".equals(sb.toString())){//判断如果输入的是over,则停止
break;
}
System.out.println(sb.toString());
sb.delete(0,sb.length());//每次情况StringBuilder容器
}else{
sb.append((char)num);
}
}
is.close();
}
}