public class ReadIn {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
* 字符流 FileReader FileWriter BufferedReader BufferedWriter
* 字節(jié)流 FileInputStream FileOutputStream BufferedInputSteam BufferedOutputStream
*
*/
//2016.10.11讀取鍵盤錄入
//讀取鍵盤錄入
//system.in對應(yīng)的標(biāo)準(zhǔn)輸入設(shè)備? ,鍵盤
//system.out 對應(yīng)的標(biāo)準(zhǔn)輸出設(shè)備 控制臺
InputStream in = System.in;
StringBuffer sb = new StringBuffer();
try {
while (true) {
int ch = in.read();
if (ch == '\r')
continue;
if (ch == '\n'){
System.out.println(sb.toString());
break;
}
else sb.append((char)ch);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
///////////////////////////////////////////////
//通過剛才的鍵盤錄入一行數(shù)據(jù)并打印其大寫,發(fā)現(xiàn)其實就是讀一行數(shù)據(jù)的原理
//也就是readLine方法
//能不能直接使用readLine方法來完成鍵盤錄入一行數(shù)據(jù)的讀取呢
//readLine方法是字符流BufferedReader類中的方法
//而鍵盤錄入的Read方法是字節(jié)流InputStream的方法
//那么能不能將字節(jié)流轉(zhuǎn)成字符流 在使用字符流緩沖區(qū)的readLine方法呢?
//獲取鍵盤錄入對象
InputStream in = System.in;
//將字節(jié)流轉(zhuǎn)成字符流對象, 使用轉(zhuǎn)換流InputSreamReader
InputStreamReader isr = new InputStreamReader(in);
//為了提高效率,將字符串進行緩沖技術(shù)高校操作,使用BufferedReader
BufferedReader bur = new BufferedReader(sir);
//獲取鍵盤錄入常見寫法
//BufferedReader bur = new BufferedReader(new InputStreamReader(System.in));
//輸出設(shè)備
OutputStream out = System.out;
OutputStreamWriter osw = new OutputStreamWriter(out);
BufferedWriter bw = new BufferedWriter(sow);
String line = null;
try {
while ((line = bur.readLine())!=null) {
if ("over".equals(line)) {
break;
}
//System.out.println(line);
bw.write(line);
bw.newline();//換行
bw.flush();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
bur.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}