java流文件读写操作大全.docx
- 文档编号:7001886
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:34
- 大小:23.93KB
java流文件读写操作大全.docx
《java流文件读写操作大全.docx》由会员分享,可在线阅读,更多相关《java流文件读写操作大全.docx(34页珍藏版)》请在冰豆网上搜索。
java流文件读写操作大全
packagepk.m11.d14.a1;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
publicclassCopyFileTest{
/*
*8、将FileInputStream和FileOutputStream类配合实现文件的复制。
*
*结论:
文件的字节可以实现任意文件的处理(如:
复制任意文件)
*/
publicstaticvoidmain(String[]args){
//1准备要复制的文件和要生成的文件名。
Stringpath1="d:
\\2015北京地铁规划图.bmp";
Stringpath2="f:
\\new2015北京地铁规划图.bmp";
//2声明
FileInputStreamfis=null;//用来读取文件
FileOutputStreamfos=null;//用来存盘文件。
System.out.println("正在复制文件,请等待.......");
//3创建
try{
fis=newFileInputStream(path1);//用来读
fos=newFileOutputStream(path2);//用来写
//4一边读一边写
intx=fis.read();
while(x!
=-1){//5判断
fos.write(x);//6存盘
x=fis.read();//7继续读取
}
//8确保存盘成功
fos.flush();
System.out.println("\n已将"+path1+"复制到"+path2+"中了。
");
}catch(FileNotFoundExceptione){
}catch(IOExceptione){
}finally{//9关闭
try{
if(fis!
=null){
fis.close();
}
}catch(IOExceptione1){
}
try{
if(fos!
=null){
fos.close();
}
}catch(IOExceptione){
}
}
}
}
packagepk.m11.d14.a1;
publicclassReaderWriterTest{
/*
*1、Reader抽象类的特性:
*1)它以字符的方式来读取数据。
*
*2)它提供的常用方法:
*intread();用来读取一个字符,反馈该字符的编码值,即:
一个int型整数,其范围为[0,65535];但当它反馈一个-1时表明结束了。
*
*voidclose();用来关闭字符输入流,释放所占资源,确保安全。
*
*它的常用类:
FileReader文件的字符输入流。
*通过案例来理解并掌握FileReader类的应用。
*
*2、Writer抽象类的特性:
*1)它以字符的方式将给定的数据输出。
当给定的数据超出了[0,65535]范围时,则会失真。
*
*2)它提供的常用方法:
*voidwrite(intx);用来将给定的整数以字符方式输出。
*
*voidflush();将缓冲区中的数据一次性输出,以确保输出成功。
*
*voidclose();用来关闭字符输出流,释放所占资源,确保安全。
*
*voidwrite(Stringstr);用来将给定的字符串输出。
*
*它的常用类:
FileWriter文件的字符输出流。
*通过案例来理解并掌握FileWriter类的应用。
*/
}
packagepk.m11.d14.a1;
importjava.io.FileNotFoundException;
importjava.io.FileReader;
importjava.io.IOException;
publicclassFileReaderTest{
/*
*通过FileReader文件的字符输入流来读取文件的内容。
*/
publicstaticvoidmain(String[]args){
//1准备要读取的文件
Stringpath="d:
/a1.java";
//2声明
FileReaderfr=null;
//3创建
try{
fr=newFileReader(path);
//4读取
intx=fr.read();//读取一个字符
while(x!
=-1){//5判断
System.out.print((char)x);//6显示
x=fr.read();//7继续读取
}
System.out.println("\n读取"+path+"文件内容完毕。
");
}catch(FileNotFoundExceptione){
}catch(IOExceptione){
}finally{//8关闭
try{
fr.close();
}catch(IOExceptione){
}
}
}
}
packagepk.m11.d14.a1;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.util.Arrays;
publicclassFileWriterTest{
/*
*通过FileWriter文件的字符输出流类实现数据存盘。
*
*/
publicstaticvoidmain(String[]args){
//1准备要存盘的数据和文件
Stringpath="f:
\\chars.txt";
char[]hzs={'欢','迎','你','们','来','到','北','京','!
'};
//2声明
FileWriterfw=null;
//3创建
try{
fw=newFileWriter(path);
//4存盘
for(charch='A';ch<='Z';ch++){
fw.write(ch);
fw.write(ch+32);
}
fw.write("\r\n");
for(inti=0;i fw.write(hzs[i]); } //5确保存盘成功 fw.flush(); System.out.println("已将26个大小写字母及"+Arrays.toString(hzs) +"存盘到"+path+"文件中了。 "); }catch(IOExceptione){ }finally{//6关闭 try{ fw.close(); }catch(IOExceptione){ } } } } packagepk.m11.d14.a1; importjava.io.FileNotFoundException; importjava.io.FileReader; importjava.io.FileWriter; importjava.io.IOException; publicclassFileCopyTest_RW{ /* *将FileReader和FileWriter文件的字符输入/输出流配合实现文件的复制。 * *结论: 它们俩者的结合只能处理文本文件,而不用来处理特殊格式的文件 *(如: 图片,*.doc,*.ppt等) * *倒型树结构来管理计算机的资源. */ publicstaticvoidmain(String[]args){ //1准备要复制的文件和存盘的文件名 Stringpath1="d: \\2015北京地铁规划图.bmp"; Stringpath2="f: \\new2015北京地铁规划图.bmp"; System.out.println("正在复制文件,请等待......"); //2声明 FileReaderfr=null; FileWriterfw=null; //3创建 try{ fr=newFileReader(path1); fw=newFileWriter(path2); //4一边读一边写 intx=fr.read(); while(x! =-1){//5判断 fw.write(x);//6存盘 x=fr.read();//7继续读取 } //8确保存盘 fw.flush(); System.out.println("\n已将"+path1+"复制到"+path2+"中了."); }catch(FileNotFoundExceptione){ }catch(IOExceptione){ }finally{ try{ fr.close(); }catch(IOExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); } try{ fw.close(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } } } packagepk.m11.d14.a1; importjava.io.File; importjava.util.Date; publicclassFileTest1{ /* *1、java语言中,来自java.io包中的File类。 *1)它用来管理计算机的资源(主要指: 磁盘、文件、文件夹)。 *即: 查看磁盘空间使用情况,创建、删除、修改文件夹或文件等操作。 * *2)它提供了一些常用的方法,用来管理文件夹或文件等资源。 * *..... * *3)通过案例理解并掌握File类的基本应用。 *a)查看指定文件夹(目录)下的信息。 */ publicstaticvoidmain(String[]args){ System.out.println("当前用户的工作位置是: " +System.getProperty("user.dir")); Stringpath=System.getProperty("user.dir"); //创建一个File类的对象用来管理path路径 Filef1=newFile(path); String[]dirFileNames=f1.list();//将指定目录下的子目录名和文件名收集起来构成一个字符串数组。 for(Stringtem: dirFileNames){ Filef2=newFile(path+"\\"+tem); System.out.print(tem+"\t"); if(f2.isDirectory()){ System.out.print("\t\t文件夹\t"); }else{ longlen=f2.length(); System.out.print(len+"\t文件\t"); } longtime1=f2.lastModified(); Dated1=newDate(time1); System.out.printf("%tF% } } } packagepk.m11.d14.a2; importjava.io.File; importjava.io.IOException; publicclassFileTest2{ //创建一系列目录和一个文件。 publicstaticvoidmain(String[]args){ //获取用户当前工作目录(工作位置) Stringpath=System.getProperty("user.dir"); Stringdirs="目录1"+"\\"+"目录11"; StringfileName="MyFile.txt"; Filef1=newFile("d: \\"+dirs,fileName); if(f1.exists()){ System.out.println("获取"+fileName+"文件的绝对路径为: "+f1.getAbsolutePath()); System.out.println("获取"+fileName+"文件大小为: "+f1.length()+"字节。 "); }else{ f1.getParentFile().mkdirs(); System.out.println("\n在当前工作位置下创建了一系列目录: "+dirs); try{ f1.createNewFile(); System.out.println("\n在"+dirs+"位置下创建了"+fileName+"文件。 "); }catch(IOExceptione){ } } } } packagepk.m11.d14.a2; publicclassBufferStreamTest{ /* *1、在java语言中,提供了BufferedInputStream缓冲的字节输入流。 *它用来提高输入的速度;它属于处理流;因此,它必须套接在节点流上。 *如: 通常它套接在FileInputStream节点流上,以便提高读取文件的速度。 * *2、在java语言中,提供了BufferedOutputStream缓冲的字节输出流。 *它用来提高输出的速度;它属于处理流;因此,它必须套接在节点流上。 *如: 通常它套接在FileOutputStream节点流上,以便提高存盘的速度。 * *注意: 以上两者结合可提高文件复制的速度和效率。 * *3、在java语言中,也提供了BufferedReader缓冲的字符输入流。 *它用来提高输入的速度;它属于处理流;因此,它往往需要套接在节点流上。 *如: 通常它套接在FileReader节点流上,以便提高读取字符的速度。 * *4、在java语言中,也提供了BufferedWriter缓冲的字符输出流。 *它用来提高输出的速度;它属于处理流;因此,它往往需要套接在节点流上。 *如: 通常它套接在FileWriter节点流上,以便提高字符存盘的速度。 * *5、缓冲流的个性: *mark()方法用来作标记。 *reset()方法用来返回到标记处。 * *6、BufferedReader缓冲的字符输入流提供的个性方法: *StringreadLine()方法用来读取一行内容。 * *7、BufferedWriter缓冲的字符输出流提供的个性方法: *voidwrite(Stringstr)方法 用来输出一个字符串。 *voidnewLine()方法 用来输出一个换行。 * */ } packagepk.m11.d14.a2; importjava.io.BufferedInputStream; importjava.io.BufferedOutputStream; importjava.io.FileInputStream; importjava.io.FileNotFoundException; importjava.io.FileOutputStream; importjava.io.IOException; publicclassFileCopyTest_New{ /* *如何提高文件的复制速度? *答案: 使用缓冲流。 验证知识点1、2 */ publicstaticvoidmain(String[]args){ //1准备 Stringpath1="d: \\2015北京地铁规划图.bmp"; Stringpath2="f: \\new2015北京地铁规划图.bmp"; System.out.println("正在复制文件,请等待......"); //2声明 FileInputStreamfis=null; FileOutputStreamfos=null; /////////////////////////////////// BufferedInputStreambis=null; BufferedOutputStreambos=null; /////////////////////////////////// //3创建 try{ fis=newFileInputStream(path1); fos=newFileOutputStream(path2); /////////////////////////////////// bis=newBufferedInputStream(fis);//以便提高读取的速度 bos=newBufferedOutputStream(fos);//以便提高存盘的速度 /////////////////////////////////// longt1=System.currentTimeMillis(); //4一边读取一边存盘 intx=bis.read();//fis.read(); while(x! =-1){//5判断 bos.write(x);//fos.write(x); x=bis.read();//fis.read(); } //确保存盘成功 bos.flush();//fos.flush(); longt2=System.currentTimeMillis(); System.out.println("\n文件复制完毕,所消耗的时间为: "+(t2-t1)+"毫秒。 "); }catch(FileNotFoundExceptione){ }catch(IOExceptione){ }finally{ try{ bis.close(); }catch(IOExceptione2){ } try{ fis.close(); }catch(IOExceptione1){ } try{ bos.close(); }catch(IOExceptione1){ } try{ fos.close(); }catch(IOExceptione){ } } } } 验证5、缓冲流的个性: *mark()方法用来作标记。 *reset()方法用来返回到标记处。 packagepk.m11.d14.a2; importjava.io.BufferedInputStream; importjava.io.FileInputStream; importjava.io.FileNotFoundException; importjava.io.IOException; publicclassMarkResetTest{ publicstaticvo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 文件 读写 操作 大全