IO流-输入输出流:字节流、字符流、缓冲流、转换流
字节输入输出流:
FileInputStreamfis=newFileInputStream(filePath);FileOutputStreamfos=newFileOutputStream(savePath);byte[]buffer=newbyte[1024];intlength=0;while(-1!=(length=fis.read(buffer))){ fos.write(buffer); /** *等价于下面的写法: *Stringstr=newString(buffer,0,length); *fos.write(str.getBytes()); */}
字符输入输出流:
FileReaderfr=newFileReader(fileName);char[]buffer=newchar[1024];//使用字符数组intlength=0;while(-1!=(length=fr.read(buffer))){for(inti=0;i<length;i++){System.out.print(buffer[i]);}}FileWriterfw=newFileWriter(fileName);fw.write("这段字符串按字符写入good");fw.flush();//写完清空缓存
转换流、缓冲流:
FileInputStreamfis=newFileInputStream(fileName);InputStreamReaderisr=newInputStreamReader(fis);BufferedReaderbr=newBufferedReader(isr);FileOutputStreamfos=newFileOutputStream(saveName);OutputStreamWriterosw=newOutputStreamWriter(fos);BufferedWriterbw=newBufferedWriter(osw);Stringstr=null;while(null!=(str=br.readLine()))//读取每行直到'\r'或'\t'则为空{bw.write(str);//write可以写入字符串或者字符bw.newLine();//换行bw.flush();//清空缓存}
文件拷贝方法:练习字节流、字符流、缓冲流、转换流
publicclassCopyMethod{publicstaticvoidmain(String[]args){CopyMethodcm=newCopyMethod();Stringscr="F:/java/tt.txt";Stringdest="F:/java/xx.txt";cm.copyMethod(scr,dest);}publicvoidcopyMethod(Stringscr,Stringdest){BufferedReaderfr=null;BufferedWriterbw=null;try{FileInputStreamfis=newFileInputStream(scr);//文件输入流InputStreamReaderisr=newInputStreamReader(fis);//转换流,将字节流转换为字符流fr=newBufferedReader(isr);//创建字符缓冲流,每次读取一行字符FileOutputStreamfos=newFileOutputStream(dest);OutputStreamWriterosw=newOutputStreamWriter(fos);bw=newBufferedWriter(osw);Stringstr=null;//缓冲流读取和写入的都是字符串while(null!=(str=fr.readLine()))//使用readLine(),读取到\r或\n结束{bw.write(str);//写入一行字符串bw.newLine();//换行bw.flush();//清空缓存,使用writer需要flush}}catch(FileNotFoundExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}finally//关闭最外层的流{if(fr!=null){try{fr.close();}catch(IOExceptione){e.printStackTrace();}}if(null!=bw){try{bw.close();}catch(IOExceptione){e.printStackTrace();}}}}}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。