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