java流文件读写操作大全.docx

上传人:b****6 文档编号:7001886 上传时间:2023-01-16 格式:DOCX 页数:34 大小:23.93KB
下载 相关 举报
java流文件读写操作大全.docx_第1页
第1页 / 共34页
java流文件读写操作大全.docx_第2页
第2页 / 共34页
java流文件读写操作大全.docx_第3页
第3页 / 共34页
java流文件读写操作大全.docx_第4页
第4页 / 共34页
java流文件读写操作大全.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

java流文件读写操作大全.docx

《java流文件读写操作大全.docx》由会员分享,可在线阅读,更多相关《java流文件读写操作大全.docx(34页珍藏版)》请在冰豆网上搜索。

java流文件读写操作大全.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1