本文對JavaIO流的編程練習(xí)題做解答,里面有詳細的思路解析,做題時最好養(yǎng)成先寫思路在編程的習(xí)慣。
1.在程序中寫一個"HelloJavaWorld你好世界"輸出到操作系統(tǒng)文件Hello.txt文件中
package?com.xykj.lesson5;import?java.io.File;import?java.io.FileOutputStream;public?class?Test5?{public?static?void?main(String[]?args)?{//?向文件D:/Hello.txt,寫入內(nèi)容File?file?=?new?File("D:/Hello.txt");try?{//?創(chuàng)建輸出流FileOutputStream?fos?=?new?FileOutputStream(file);//把String類型的字符串轉(zhuǎn)化為byte數(shù)組的數(shù)據(jù)保存在輸出流中fos.write("HelloJavaWorld你好世界".getBytes());fos.flush();//刷新輸出流fos.close();//關(guān)閉輸出流}?catch?(Exception?e)?{e.printStackTrace();}}}
2.拷貝一張圖片,從一個目錄到另外一個目錄下(PS:是拷貝是不是移動)
package?com.xykj.lesson6;import?java.io.File;import?java.io.FileInputStream;import?java.io.FileOutputStream;public?class?Test6?{public?static?void?main(String[]?args)?{//?本題示范把D盤下的mm.jpg復(fù)制到D盤java文件夾里面//?源文件地址File?fileFrom?=?new?File("D:/mm.jpg");//?目的文件地址File?fileTo?=?new?File("D:/java/mm.jpg");//?1、創(chuàng)建目的文件地址try?{if?(!fileTo.createNewFile())?{System.out.println("創(chuàng)建文件失??!");}//?2、讀取源地址文件的字節(jié)流FileInputStream?fis?=?new?FileInputStream(fileFrom);FileOutputStream?fos?=?new?FileOutputStream(fileTo);int?len?=?0;byte[]?buf?=?new?byte[1024];while?((len?=?fis.read(buf))?!=?-1)?{//?3、把讀取到的字節(jié)流寫入到目的地址的文件里面fos.write(buf,?0,?len);}//?刷新下輸出流fos.flush();//?關(guān)閉輸入流和輸出流fis.close();fos.close();System.out.println("文件復(fù)制成功!");}?catch?(Exception?e)?{e.printStackTrace();}}}
3.統(tǒng)計一個文件calcCharNum.txt(見附件)中字母'A'和'a'出現(xiàn)的總次數(shù)
package?com.xykj.lesson7;import?java.io.File;import?java.io.FileInputStream;public?class?Test7?{public?static?void?main(String[]?args)?{try?{//添加文件路徑File?file?=?new?File("D:/java/calcCharNum.txt");//創(chuàng)建文件讀取流FileInputStream?fis?=?new?FileInputStream(file);int?numA?=?0;//字母A的數(shù)量int?numa?=?0;//字母a的數(shù)量int?len?=?0;//每次讀取的字節(jié)數(shù)量while?((len=fis.read())!=?-1)?{//統(tǒng)計字母a的數(shù)量if?(new?String((char)len+"").equals("a"))?{numa++;}//統(tǒng)計字母A的數(shù)量if?(new?String((char)len+"").equals("A"))?{numA++;}}//打印出文件內(nèi)字母的數(shù)量System.out.println("a的數(shù)量是:"+numa);System.out.println("A的數(shù)量是:"+numA);System.out.println("a和A出現(xiàn)的總次數(shù):"+(numA+numa));fis.close();//關(guān)閉輸入流}?catch?(Exception?e)?{e.printStackTrace();}}}
4.統(tǒng)計一個文件calcCharNum.txt(見附件)中各個字母出現(xiàn)次數(shù):A(8),B(16),C(10)...,a(12),b(10),c(3)....,括號內(nèi)代表字符出現(xiàn)次數(shù);
package?com.xykj.lesson8;import?java.io.File;import?java.io.FileInputStream;import?java.util.HashMap;import?java.util.Iterator;import?java.util.Map.Entry;public?class?Test8?{public?static?void?main(String[]?args)?{//?文件路徑File?file?=?new?File("D:/java/calcCharNum.txt");try?{//?創(chuàng)建讀取文件的輸入流FileInputStream?fis?=?new?FileInputStream(file);//?創(chuàng)建集合HashMap類存放要保存的key-valueHashMap?map?=?new?HashMap<>();//?讀取文件int?len?=?0;//?每次讀取的文件長度int?count?=?0;while?((len?=?fis.read())?!=?-1)?{//?每次獲取到的字母char?c?=?(char)?len;//這里使用try?catch是因為?map.get(c?+?""),第一次get不到東西會出現(xiàn)空指針try?{//?通過每次的key值獲取它的value值,//?但是在它的key值沒有時或報空指針錯誤,所以要try?catch處理//?當她有key值,就可以獲取到相應(yīng)的value值count?=?map.get(c?+?"");}?catch?(Exception?e)?{//?什么都不用輸出}//?如果有它的key值對應(yīng)的value值要加1map.put(c?+?"",?count?+?1);}fis.close();//?讀完后把結(jié)果打印出來//迭代器的使用Iterator>?iterator?=?map.entrySet().iterator();while?(iterator.hasNext())?{Entry?entry?=?iterator.next();System.out.print(entry.getKey()?+?"("?+?entry.getValue()+?")?t");}}?catch?(Exception?e)?{e.printStackTrace();}}}
以上就是長沙牛耳教育java培訓(xùn)機構(gòu)的小編針對“Java io流編程練習(xí)題,經(jīng)典系列(一)”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。