贵州省软件和信息技术服务业公共服务平台

主办单位:贵州省经济和信息化委员会 贵州省信息技术服务业协会

当前位置: 首页 >> 正文
学java7中的文件操作新方法
  发布时间:2013年7月3日  来源:jave学习室  作者:admin  阅读人次:3266

  //java1.7的java.nio.file包中定义的类使得对文件的操作变得简单,灵活的多,且看下面的例子:

  import java.io.IOException;

  import java.nio.file.DirectoryStream;

  import java.nio.file.Files;

  import java.nio.file.LinkOption;

  import java.nio.file.Path;

  import java.nio.file.Paths;

  import java.nio.file.StandardCopyOption;

  import java.nio.file.attribute.BasicFileAttributes;

  import java.util.Date;

  /**

  * Files类主要是用来对文件的

  * @author zKF57533

  */

  public class TestFiles {

  public static void main(String args[]){

  // moveFile();

  fileAttributes();

  createDir();

  }

  /**

  * 非常方便的对文件进行移动操作

  * 将tt.txt从pathFrom文件夹位置移动到pathTo文件夹下

  * 此方法可以和copy这个方法相比较,用法相同,其他增删改查操作请参考api即可

  * @throws IOException

  */

  public static void moveFile() {

  Path pathFrom = Paths.get("c:/ex", "tt.txt");

  Path pathTo = pathFrom.getParent().resolve("errorLog/dd.txt");

  try {

  //文件的大小bytes

  System.out.println(Files.size(pathFrom));

  //调用文件移动方法

  Files.move(pathFrom, pathTo, StandardCopyOption.REPLACE_EXISTING);

  } catch (IOException e) {

  System.err.println("移动文件错误" + e.getMessage());

  }

  }

  /**

  * 测试文件的属性信息

  * 包括文件的修改时间、是否是文件夹、创建时间等

  */

  @SuppressWarnings("deprecation")

  public static void fileAttributes(){

  Path path = Paths.get("c:/ex");

  //1

  System.out.println(Files.isDirectory(path, LinkOption.NOFOLLOW_LINKS));

  //2

  try {

  //获得文件的基础属性

  BasicFileAttributes attributes = Files.readAttributes(path, BasicFileAttributes.class);

  System.out.println(attributes.isDirectory());

  System.out.println(new Date(attributes.lastModifiedTime().toMillis()).toLocaleString());

  } catch (IOException e) {

  e.printStackTrace();

  }

  }

  /**

  * 创建文件夹

  * 遍历文件夹下的文件

  */

  public static void createDir(){

  Path path = Paths.get("c:/ex/tte");

  try {

  //创建文件夹

  if(Files.notExists(path)){

  Files.createDirectories(path);

  System.out.println("create dir");

  }else{

  System.out.println("dir exists");

  }

  //在创建的文件夹下建几个txt文件,例如

  //2.txt

  //ff 文件夹

  //java.bat

  //_java.txt

  //遍历文件夹下面的文件

  DirectoryStream paths = Files.newDirectoryStream(path);

  for(Path p : paths){

  System.out.println(p.getFileName());

  }

  System.out.println();

  //创建一个带有过滤器,过滤文件名以java txt bat结尾的文件

  DirectoryStream pathsFilter = Files.newDirectoryStream(path, "*.{java,txt,bat}");

  for(Path p : pathsFilter){

  System.out.println(p.getFileName());

  }

  } catch (IOException e) {

  e.printStackTrace();

  }

  }

  }

  C:\ex>java TestFiles

  true

  true

  2012-11-25 18:51:34

  dir exists

  2.txt

  ff

  CubeRoots.java

  java

  javja.bat

  2.txt

  CubeRoots.java

  javja.bat

打印本页 | 关闭窗口