I/O流(一)
流:字節(jié)序列(順序)
(輸入流和輸出流都是抽象類,不能被實(shí)例化;輸入和輸出是相對(duì)于程序來說的;)
輸入流InputStream:(鍵盤、文件、網(wǎng)絡(luò) )
System.in.read();可以按照讀取控制臺(tái)輸入的數(shù)據(jù)
等價(jià)于
Scanner s=new Scanner(System.in);
IO操作時(shí)會(huì)有字節(jié)序列產(chǎn)生
字節(jié)序列→(編碼方式)→串
編碼方式:gbk (囧、镕)、 gb2312、big5 (臺(tái)灣)、 Unicode(標(biāo)準(zhǔn))—UTF-8
System.in 提供字節(jié)輸入;
InputStreamReader 提供了字符的輸入;
BufferedReader 提供了整行字符(串)的輸入;
java中的預(yù)定義流:
System.in 標(biāo)準(zhǔn)輸入流 默認(rèn)鍵盤
System.out 標(biāo)準(zhǔn)輸出流 默認(rèn)鍵盤
System.err 標(biāo)準(zhǔn)錯(cuò)誤流 默認(rèn)屏幕
這些預(yù)定義的流是可以重定向的:
System.setIn(…)
System.setOut(…)
System.setErr(…)
泛化:
InputStream ins=new FileInputStream(“a.txt”);
讀的異常情況
1、異常
FileNotFoundException 文件找不到
IOException 其他異常
2、讀到文件尾
readLine() 返回null
從文件讀入信息打印到控制臺(tái)
/**舉例如下 BufferedReader bs=new BufferedReader(new InputStreamReader(new FileInputStreamReader("d:/test.txt"))); for(;;){String s =br.readLine(); //一行一行的讀數(shù)據(jù)if(s==null)break;System.out.println(s); } **/ ----------------------------------------------------------輸出流OutputStream:(屏幕、文件、網(wǎng)絡(luò))
將一些字符串輸出的文件中
/**舉例如下 String s1="文件流文件流"; String s2="我是誰我是誰"; BufferedWriter bw= new BufferedWriter( new OutputStreamWriter( new FileOutputStream("d:/test02.txt"))); bw.write(s1); //換行:改為bw.write(s1+"\n");或者再加一句bw.newLine(); bw.write(s2);//將內(nèi)容寫入內(nèi)存 bw.flush();//清除內(nèi)存中的內(nèi)容,將其寫到磁盤上對(duì)應(yīng)的文件中 **/從鍵盤接受信息輸出到文件
/**舉例如下 //從鍵盤讀入 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); //構(gòu)建輸出流 BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("d:/test.txt"))); //寫信息 for(;;){String s=br.readLine();if(s == null )break;bw.write(s); } bw.flush(); **/為輸出的信息加行號(hào)
/**舉例如下 //從鍵盤讀入 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); //構(gòu)建輸出流 BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("d:/test.txt"))); //寫信息 int i=0; for(;;){String s=br.readLine();if(s == null )break;bw.write(i + "、" + s);bw.newLine();i++; } bw.flush(); **/總結(jié)
- 上一篇: 【Spring学习】spring开发包介
- 下一篇: I/O流(二)