1:file:文件的創(chuàng)建和刪除;
File file=new File("D:\word.txt");絕對路徑 File file=new File("word.txt");相對路徑 if(!file.exists()) { file.createNewFile();} 不存在時(shí),創(chuàng)建新的 if(file.exists()) { file.delete();} 存在時(shí),刪除操作 file.length();漢字兩個(gè)字節(jié)一個(gè),字母空格數(shù)字一個(gè)字節(jié)一個(gè),換行兩個(gè)字節(jié)。(long) file.isFile()判斷是否存在 file.canRead()判斷是否可以讀 file.canWrite();判斷是否被寫入 file.getAbsolutePath()獲取絕對路徑 file.lastModified()最后的修改時(shí)間(long)
2:文件輸入輸出流
文件txt的寫入當(dāng)執(zhí)行流的時(shí)候文件內(nèi)容會(huì)被清空,讀取不會(huì)清空文件內(nèi)容
FileInputStream和FileOutputStream類(讀取,寫入) File file=new File("D:\word.txt"); FileOutputStream out=new FileOutputStream (file);//寫入 byte bite[]="abcdefg牛123*?!#".getBytes(); out.write(bite);//在文件中寫入相應(yīng)信息 out.close(); FileInputStream in=new FileInputStream (file);//讀取 byte bite2[]=new byte[1024]; int len=in.read(bite2);//從文件中讀取信息。返回字節(jié)數(shù),符號(hào)數(shù)字字母一個(gè)字節(jié),漢字兩個(gè)字節(jié) System.out.println(new String(bite2,1,len-2));//字節(jié)數(shù)組,初始結(jié)尾輸出bcdefg牛123*? System.out.println(len);//輸出16 in.close();//關(guān)閉流
FileReader和FileWriter類(讀取,寫入)
File file=new File("D:\word.txt"); FileWriter out=new FileWriter(file);//寫入 String a="hellow張三n"; out.write(a); out.write(a); out.close();//關(guān)閉流 FileReader in=new FileReader(file);//讀取 char ch[]=new char[1024]; in.read(ch); System.out.println(ch);//hellow張三 //hellow張三 當(dāng)輸出ch[7]=三,ch[8]="";ch[9]=h;換行中間有一個(gè)空 in.close();//關(guān)閉流
兩類的區(qū)別在于FileInputStream和FileOutputStream類(讀取,寫入)處理字節(jié)流,很適合處理音頻等文件不適合處理漢字文檔,因?yàn)闈h字和英文字母不同兩個(gè)字節(jié),而FileReader和FileWriter類(讀取,寫入)適合處理字符文本內(nèi)容,不會(huì)亂碼。
3:帶緩存的輸入,輸出流
BufferedInputStream和BufferedOutputStream BufferedInputStream(InputStream in)//32個(gè)字節(jié)緩存流 BufferedInputStream(InputStream in,int size)//size個(gè)字節(jié)緩存流 BufferedOutputStream(OutputStream out) BufferedOutputStream(OutputStream out,int size); BufferedWriter和BufferedReader
String a[]= {"張三你好","李四你好","李四你好"}; File file=new File("D:\word.txt"); FileWriter out=new FileWriter(file);//寫入 BufferedWriter bufw=new BufferedWriter (out); for(int i=0;i<3;i ) { bufw.write(a[i]);//寫入 bufw.newLine();//換行,寫入一個(gè)行分隔符 } bufw.close(); out.close();//關(guān)閉流 FileReader in=new FileReader(file);//讀取 BufferedReader bufr=new BufferedReader(in); String s=null; while((s= bufr.readLine())!=null) {System.out.println(s);} //一定要賦值,readLine()是一種動(dòng)態(tài)方法返回字符串。不可 while(bufr.readLine()=null)System.out.println(bufr.readLine());} //這樣就默認(rèn)調(diào)用了兩次函數(shù)。。。 bufr.close(); in.close();//關(guān)閉流 /* * 輸出: * 張三你好 * 李四你好 * 李四你好 */
4:數(shù)據(jù)輸入,輸出流
DateInputStream和DateOutputStream DateInputStream(InputStream in)使用指定基礎(chǔ)的InputStream創(chuàng)建 DateOutputStream(OutputStream out) DateOutputStream三種寫入字符串方法 writeBytes(String s) java 字符是雙字節(jié)的,將字符的低字節(jié)內(nèi)容錄入。 writeChars(String s) 每個(gè)字符的兩個(gè)字節(jié)內(nèi)容 writeUTF(String s) 將字符按照utf編碼錄入 DateInputStream讀取字符串 readUTF();