黑马程序员——Java的File类的简单应用,文件的拷贝
2014-08-15 16:41
387 查看
-------
android培训、java培训、期待与您交流! ----------
File类的对象可以代表一个具体的文件路径,在实际代表时,可以使用绝对路径也可以使用相对路径。可以通过其构造函数创建一个相对路径、绝对路径,也可以通过父路径和子路径相结合的方式,创建文件路径。
File file=new File("d:\\file\\file1");File file1=new File("d:\\file","\\file.txt");
该类提供了很多方法,可是很方便地对文件进行操作。
1、createNewFile()——用于创建一个文件,当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
2、mkdir()和mkdirs(),主要用作创建抽象路径名的指定目录或多级目录。
3、exists()用作判断此抽象路径名表示的文件或目录是否存在。
4、getName()返回由此抽象路径名表示的文件或目录的名称。
5、getPath()将此抽象路径名转换为一个路径名字符串。
6、isFile()用于判断该抽象路径名是否是一个文件
7、isDirectory()用于判断该路径名是否是一个文件夹
8、listFiles()返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。可以通过该数组遍历其下的子文件及文件夹。
9、list()返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
下面用一个实例这些方法如何使用:
该模块实现了文件及文件夹的拷贝工作,可以将指定文件或文件夹从一个目录拷贝到另一个地方,其中包括文件夹下的一些子文件夹和文件等数据。
android培训、java培训、期待与您交流! ----------
File类的对象可以代表一个具体的文件路径,在实际代表时,可以使用绝对路径也可以使用相对路径。可以通过其构造函数创建一个相对路径、绝对路径,也可以通过父路径和子路径相结合的方式,创建文件路径。
File file=new File("d:\\file\\file1");File file1=new File("d:\\file","\\file.txt");
该类提供了很多方法,可是很方便地对文件进行操作。
1、createNewFile()——用于创建一个文件,当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
2、mkdir()和mkdirs(),主要用作创建抽象路径名的指定目录或多级目录。
3、exists()用作判断此抽象路径名表示的文件或目录是否存在。
4、getName()返回由此抽象路径名表示的文件或目录的名称。
5、getPath()将此抽象路径名转换为一个路径名字符串。
6、isFile()用于判断该抽象路径名是否是一个文件
7、isDirectory()用于判断该路径名是否是一个文件夹
8、listFiles()返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。可以通过该数组遍历其下的子文件及文件夹。
9、list()返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
下面用一个实例这些方法如何使用:
该模块实现了文件及文件夹的拷贝工作,可以将指定文件或文件夹从一个目录拷贝到另一个地方,其中包括文件夹下的一些子文件夹和文件等数据。
import java.io.*; class FileProDemo { public static void main(String[] args) { //System.out.println("Hello World!"); //handleFile(); //copyFile("d:\\file","e:\\file"); copyFile("d:\\text.txt","e:text.txt"); } public static void handleFile() { //创建File对象 File f0=new File("d:\\D盘文件"); File f1=new File("d:\\file\\abc\\aa"); File f2=new File("d:\\filetext.txt"); File f3=new File("d:\\","text.txt"); //创建文件 try { //创建文件 f2.createNewFile(); f3.createNewFile(); //创建文件夹 f0.mkdirs();//创建根目录 f1.mkdirs();//创建多级目录 } catch (IOException e) { System.out.println(e.getMessage()); } File[] files=f0.listFiles(); for(File f:files) { if(f.isFile()) System.out.println(f.getName()); else System.out.println(f.getPath()); } /*System.out.println("getAbsolute():"+f2.getAbsolutePath()); System.out.println("f1.getName():"+f1.getName()); System.out.println("f1.getPaht():"+f1.getPath()); System.out.println("f0.getName():"+f0.getName()); System.out.println("f0.getPaht():"+f0.getPath()); System.out.println("f0.isDirectory():"+f0.isDirectory());*/ //for(String s:dir1) //System.out.println("dir:"+s); } //拷贝文件(包括文件夹) public static void copyFile(String src,String des) { try { File srcFile=new File(src); File desFile=new File(des); //返回父目录下的文件名或路径名数组 File[] files=srcFile.listFiles(); //int len=files.length; //如果是文件直接拷贝文件 if(srcFile.isFile()) { copyFileData(srcFile.getPath(),des); return ; } //如果不是文件 //如果当前目录下没有此文件夹,则新创建一个 if(!desFile.exists()) { desFile.mkdirs(); System.out.println("原文件夹:"+srcFile.getPath()); System.out.println("新创建的文件夹:"+desFile.getPath()); } //遍历父目录下的文件和文件夹 for(File f:files) { //找到文件则直接将数据进行拷贝 if(f.isFile()) copyFileData(f.getPath(),des+"\\"+f.getName()); //找到的是文件夹,则重复以上过程(递归操作) else { copyFile(f.getPath(),des+"\\"+f.getName()); //System.out.println("创建过程——路径名:"+f.getPath()+"--文件名"+f.getName()); } } } catch (Exception e) { System.out.println(e.getMessage()); } } //拷贝数据 public static void copyFileData(String src,String des) { BufferedInputStream bufIn=null; BufferedOutputStream bufOut=null; try { bufIn=new BufferedInputStream(new FileInputStream(src)); bufOut=new BufferedOutputStream(new FileOutputStream(des)); //自定义缓冲区大小 byte[] buf=new byte[1024]; int readNum=0; while((readNum=bufIn.read(buf))!=-1) { bufOut.write(buf,0,readNum); bufOut.flush(); } bufIn.close(); bufOut.close(); } catch (IOException e) { System.out.println(e.getMessage()); } finally { try { if(bufIn!=null) bufIn.close(); } catch (IOException e) { System.out.println(e.getMessage()); } try { if(bufOut!=null) bufOut.close(); } catch (IOException e) { System.out.println(e.getMessage()); } } } }
相关文章推荐
- java 文件拷贝:简单拷贝,jar、war等里面的拷贝
- Java查找指定文件的简单应用
- java对文件拷贝的简单操作
- java定时框架Quartz的简单应用(附:读取properties文件参数代码)
- Java编程的逻辑 (60) - 随机读写文件及其应用 - 实现一个简单的KV数据库
- 黑马程序员_java对BufferedReader中readLine在拷贝文件时存在的问题的与改进方法。
- JAVA-EE表单file文件的简单应用
- Java学习之道:mybatis简单应用(基于配置文件)
- 黑马程序员————java反射的简单应用
- 黑马程序员——Java基础——IO流(拷贝文件)
- 文章标题 Java中io流的一些简单操作(包含文件复制,向硬盘中写入文本文件,以及io流高级应用序列化和反序列化)
- 类加载器的方式管理资源和配置文件/JavaBean/重构_内省的简单应用
- java对文件拷贝的简单操作
- 黑马程序员---2015.6.25java基础笔记---装饰模式--字节流拷贝图片--字节流缓冲--字节字符转化--File类
- 简单的IO流应用-将文件夹中的所有文件拷贝到指定目录下
- Java进阶之反射的简单应用:通过反射运行配置文件内容
- 黑马程序员——java IO实现文件拷贝
- java基础的综合应用(类的应用,文本拷贝,IO流,数组,集合,文件文件夹的创建)
- 黑马程序员--java基础:File类和文件字节IO流
- 黑马程序员—编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt