还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
【济南中心】编程阶梯基础篇之第二十一章JAVA流字符流IO FileReader字符流是什么字符流是能够直接读写字符流10字符流读取字符,就要先读取到字节数据,然后转为字符.假如要写出字符,需要把字符转为字节再写出.类方法能够按照字符大小读取FileReader read纯文本查看复制代码[Java]*n〃创建输入流对象,关联1FileReader fr=new FileReadertext.txt;aaa.txt2int ch;二〃将读到字符赋值给3whilech fr.readO!=-1{ch〃将读到字符强转后打印4System.out.printlncharch;5〃关流6fr.close;流字符流IO Filewriter类方法能够自动把字符转为字节写出FileWriter write纯文本查看复制代码[Java]1FileWriter fw=new FileWritertext.txt;2fw.writetext3fw.closeO;流字符流拷贝io纯文本查看复制代码[Java]■;n1FileReader fr=new FileReadera.txt2FileWriter fw=new FileWriterb.txt;3int ch;4whilech=fr.readQ!=-1{5fw.writech;67fr.close;8fw.closeO;流使用指定码表读写字符IO是使用默认码表读取文件,假如需要使用指定码表读取,那么能够使用FileReader字节流,编码表InputStreamReader是使用默认码表写出文件,假如需要使用指定码表写出,那么能够使用FileWriter字节流编码表OutputStreamWriter纯文本查看复制代码[Java]1BufferedReader br=new BufferedReadernewInputStreamReadernew FileInputStreamUTF-
8.txt;〃效用指定编码表读lUTF-8M2BufferedWriter bw=new BufferedWriternewOutputStreamWriternew,,〃高效用指定编码表写3FileOutputStreamGBK.txtGBK;,4int ch;5whilech=br.read!=-1{6bw.writech;78br.close;bw.closeO;什么情况下使用字符流字符流也能够拷贝文本文件,但不推荐使用.因为读取时会把字节转为字符,写出时还要把字符转回字节.程序需要读取一段文本,或者需要写出一段文本时候能够使用字符流读取时候是按照字符大小读取,不会出现半个汉字写出时候能够直接将字符串写出,不用转换为字节数组字符流不能够拷贝非纯文本文件,因为在读时候会将字节转换为字符,在转换过程中,可能找不到对应字符,就会用代替,写出时候会将字符转换成字节写出去,假如是,直接写出,这么写出之后文件就乱了,看不了了流自定义字符数组拷贝IO纯文本查看复制代码[Java]01FileReader fr=new FileReaderaaa.txt;〃创建字符输入流,关联aaa.txt02FileWriter fw=new FileWriterbbb.txt;〃创建字符输出流,关联bbb.txt0304int len;05char[]arr=new char[1024*8];〃创建字符数组06whilelen=fr.readarr!=-1{〃将数据读到字符数组中07fw.writearr0,len;〃从字符数组将数据写到文件上z0809fr.close;〃关流释放资源10fw.closeO;流带缓冲字符流IO方法读取字符时会一次读取若干字符到缓冲区,然后逐一返回给程BufferedReaderread序,降低读取文件次数,提升效率方法写出字符时会先写到缓冲区,缓冲区写满时才会写到文件,降BufferedWriterwrite低写文件次数,提升效率纯文本查看复制代码[Java]〃创建字符输入流对象,关联IBufferedReader br=new BufferedReadernewFileReaderCaaa.txt;〃创建字符输出流对!2BufferedWriter bw=new BufferedWriternewFileWriterCbbb.txt;3bbb.txtint ch;一次,会先将缓冲区读满,从缓冲去中一个一个返给暂日;whilech=br.readQ!=-1{//read7ch〃一次,是将数据装到字符数组,装满后再一起写出去8bw.writech;write9〃关流br.close;bw.close;流方法IO readLinefnnewLine方法能够读取一行字符不包含换行符号BufferedReaderreadLine能够输出一个跨平台换行符号BufferedWriternewLine“\r\rT纯文本查看复制代码[Java];n01Buffered Readerbr=new BufferedReadernewFileReader aaa.txt02BufferedWriter bw=new BufferedWriternewFileWriterCbbb.txt;03String line;04whileline=br.readLineQ!=null{05bw.writeline;〃只支持系统06//bw.writeCXrXn;windows〃跨平台07bw.newLine;0809br.close;10bw.closeQ;流IO LineNumberReader是子类,具备相同功效,而且能够统计行号LineNumberReader BufferedReader调用方法能够获取当前行号getLineNumber调用方法能够设置当前行号setLineNumber纯文本查看复制代码[Java]1LineNumberReader Inr=new LineNumberReadernewFileReaderCaaa.txt;2String line;3Inr.setLineNumberlOO;〃设置行号4whileline=Inr.readLineQ!=null{〃获取行号5System.out.printlnlnr.getLineNumber+”:+line;678Inr.closeQ;装饰设计模式纯文本查看复制代码[Java]*Olinterface Coder{02public voidcode;03}0405class Studentimplements Coder{@Override07public voidcode{08System.out.printlnjavase;09System.out.printlnjavaweb;101112131415class HeiMaStudentimplements Coder〃获取到被包装类引用16{private Students;〃经过结构函数创建对象时候,传入被包装对当17public ItcastStudentStudents18{this.s=s;19205Override21〃对其原有功效进行升级public voidcode{22s.code;23数据库System,out.printin24System.out.printlnssh;25”安卓System.out.printin262728;System.out.println.•…29流递归遍历删除文件夹10纯文本查看复制代码[Java]class RemoveDir{public staticvoid mainString[]args{File dir=new FileE:\\kankan;01removeDirdir;020304〃删除目录下全部内容public staticvoid removeDirFiledir{dir05;〃列出全部文件及目录,返回File[]files=didistFiles File[]0607forint x=0;xfiles.length;x++{08冈〃若是目录,继续递归调用iffiles.isDirectoryO09removeDirfiles[x];10else11,,nSystem.outpnntlnfiles[x].toString+::file::+files[x].delete;12131415〃继续删除空目录16System.out.pnntlndir+::dir::+dir.delete;17181920。
个人认证
优秀文档
获得点赞 0