疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java学习之旅File类的使用


 

   

  1. 构造方法

  构造方法 描述

  File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建一个新的文件实例。

  File(String parent , String child) 通过给定的父路径名字符串和子路径名字符串来创建一

  个新的文件实例。

  File(File parent , String child) 通过给定的父抽象路径对象和子路径名字符串来创建一

  个新的文件实例。

  File(URI uri) 通过给定的URI来创建一个新的文件实例

  package com.qunar.bean;

  import java.io.File;

  import java.net.URISyntaxException;

  public class FileDemo {

  public static void main(String[] args) throws URISyntaxException {

  String pathname = "E:\Recommended system";

  // File(String pathname)

  File file1 =new File(pathname);

  // File(String parent,String child)

  File file2 =new File(pathname,"train_data.txt");

  // File(File parent,String child)

  File file3 = new File(file1, "train_data.txt");

  // File(URI uri)

  // File file4 =new File(new URI(""));

  // separator 跨平台分隔符

  File file4 =new File("E:"+File.separator+"Recommended system");

  System.out.println(file1);

  System.out.println(file2);

  System.out.println(file3);

  System.out.println(file4);

  }

  }

  运行结果:

  E:Recommendedsystem

  E:Recommendedsystem rain_data.txt

  E:Recommendedsystem rain_data.txt

  E:Recommendedsystem

  2. 创建与删除方法

  方法 描述

  boolean createNewFile() 如果文件存在返回false,否则返回true并且创建文件

  boolean mkdir() 创建目录

  boolean mkdirs() 创建多级目录

  boolean delete() 如果文件存在返回true并且删除文件,否则返回false

  boolean deleteOnExit() 文件使用完成后删除

  package com.qunar.bean;

  import java.io.File;

  import java.io.IOException;

  import java.net.URISyntaxException;

  public class FileDemo {

  public static void main(String[] args) throws URISyntaxException {

  String pathname = "D:\Recommended system.txt";

  // 创建文件实例

  File file = new File(pathname);

  try {

  // 如果文件存在返回false,否则返回true并且创建文件

  if(file.createNewFile()){

  System.out.println("创建文件["+pathname+"]");

  }//if

  else{

  System.out.println("文件["+pathname+"]已存在");

  }//else

  } catch (IOException e) {

  e.printStackTrace();

  }

  }

  }

  package com.qunar.bean;

  import java.io.File;

  public class FileDemo {

  public static void main(String[] args) {

  String pathname = "D:\Recommended system.txt";

  // 创建文件实例

  File file = new File(pathname);

  //如果文件存在返回true并且删除文件,否则返回false

  if(file.delete()){

  System.out.println("删除文件["+pathname+"]");

  }//if

  else{

  System.out.println("文件["+pathname+"]不存在");

  }//else

  }

  }

  package com.qunar.bean;

  import java.io.File;

  public class FileDemo {

  public static void main(String[] args) {

  String pathname = "D:\Recommended system";

  String pathname2 = "D:\Recommended system2\Paper\News";

  // 创建文件实例

  File file = new File(pathname);

  File file2 = new File(pathname2);

  //如果目录不存在返回true并且创建目录,否则返回false

  if(file.mkdir()){

  System.out.println("创建目录["+pathname+"]");

  }//if

  else{

  System.out.println("目录["+pathname+"]已存在");

  }//else

  //如果多级目录不存在返回true并且创建多级目录,否则返回false

  if(file2.mkdirs()){

  System.out.println("创建多级目录["+pathname2+"]");

  }//if

  else{

  System.out.println("多级目录["+pathname2+"]已存在");

  }//else

  }

  }

  3. 判断方法

  方法 描述

  boolean canExecute() 判断文件是否可执行

  boolean canRead() 判断文件是否可读

  boolean canWrite() 判断文件是否可写

  boolean exists() 判断文件是否存在

  boolean isDirectory()

  boolean isFile()

  boolean isHidden()

  boolean isAbsolute() 判断是否是绝对路径 文件不存在也能判断

  package com.qunar.bean;

  import java.io.File;

  public class FileDemo {

  public static void main(String[] args) {

  String pathname = "D:\Recommended system\train_data.txt";

  // 创建文件实例

  File file = new File(pathname);

  // 判断文件是否可执行

  if(file.canExecute()){

  System.out.println("文件["+pathname+"]可执行");

  }//if

  else{

  System.out.println("文件["+pathname+"]不可执行");

  }//else

  // 判断文件是否可读

  if(file.canRead()){

  System.out.println("文件["+pathname+"]可读");

  }//if

  else{

  System.out.println("文件["+pathname+"]不可读");

  }//else

  // 判断文件是否可写

  if(file.canWrite()){

  System.out.println("文件["+pathname+"]可写");

  }//if

  else{

  System.out.println("文件["+pathname+"]不可写");

  }//else

  // 判断文件是否存在

  if(file.exists()){

  System.out.println("文件["+pathname+"]存在");

  }//if

  else{

  System.out.println("文件["+pathname+"]不存在");

  }//else

  // 判断文件是否是目录

  if(file.isDirectory()){

  System.out.println("文件["+pathname+"]是目录文件");

  }//if

  else{

  System.out.println("文件["+pathname+"]不是目录文件");

  }//else

  // 判断是否是一个绝对路径

  if(file.isAbsolute()){

  System.out.println("["+pathname+"]是绝对路径");

  }//if

  else{

  System.out.println("["+pathname+"]不是绝对路径");

  }//else

  }

  }

  4.获取方法

  方法 描述

  String getName() 返回文件或者是目录的名称

  String getPath() 返回路径

  String getAbsolutePath() 返回绝对路径

  String getParent() 返回父目录,如果没有父目录则返回null

  long lastModified() 返回最后一次修改的时间

  long length() 返回文件的长度

  File[] liseRoots()

  String[] list() 返回一个字符串数组,给定路径下的文件或目录名称字符串

  String[] list(FilenameFilter filter) 返回满足过滤器要求的一个字符串数组

  File[] listFiles() 返回一个文件对象数组,给定路径下文件或目录

  File[] listFiles(FilenameFilter filter) 返回满足过滤器要求的一个文件对象数组

  package com.qunar.bean;

  import java.io.File;

  public class FileDemo {

  public static void main(String[] args) {

  String pathname = "E:\Recommended system";

  // 创建文件实例

  File file = new File(pathname);

  // 返回文件或者目录的名称

  System.out.println("GetName->"+file.getName());

  // 返回路径

  System.out.println("GetPath->"+file.getPath());

  // 返回文件长度

  System.out.println("Length->"+file.length());

  // 返回给定路径下的文件和目录字符串数组

  String[] files = file.list();

  for (String name : files) {

  System.out.println("名称:"+name);

  }//for

  File[] files2 = file.listFiles();

  for (File file2 : files2) {

  if(file2.isFile()){

  System.out.println("文件名称:"+file2.getName());

  }//if

  else if(file2.isDirectory()){

  System.out.println("目录名称:"+file2.getName());

  }//else

  }//for

  // 列出可用的系统盘

  File[] files3 = file.listRoots();

  for (File file3 : files3) {

  System.out.println("文件名称:"+file3.getPath());

  }

  }

  }

  运行结果:

  GetName->Recommendedsystem

  GetPath->E:Recommendedsystem

  Length->16384

  名称:540135b87c6d0.csv

  名称:5403c3df31780.doc

  名称:baidu-salon-38-1.mp3

  名称:baidu-salon-38-1.pdf

  名称:TextAnalysis.rar

  名称:train_data.txt

  名称:中文停用词表(比较全面_有1208个停用词).txt

  名称:主题提起

  名称:协同过滤

  名称:天猫推荐算法.mp3

  名称:天猫推荐算法.pdf

  名称:推荐系统入门.zip

  名称:推荐系统实战经验与效果提升之道.pdf

  文件名称:540135b87c6d0.csv

  文件名称:5403c3df31780.doc

  文件名称:baidu-salon-38-1.mp3

  文件名称:baidu-salon-38-1.pdf

  文件名称:TextAnalysis.rar

  文件名称:train_data.txt

  文件名称:中文停用词表(比较全面_有1208个停用词).txt

  目录名称:主题提起

  目录名称:协同过滤

  文件名称:天猫推荐算法.mp3

  文件名称:天猫推荐算法.pdf

  文件名称:推荐系统入门.zip

  文件名称:推荐系统实战经验与效果提升之道.pdf

  文件名称:C:

  文件名称:D:

  文件名称:E:

  文件名称:F:

  文件名称:G:

  文件名称:H:

  文件过滤例子:

  package com.qunar.bean;

  import java.io.File;

  import java.io.FilenameFilter;

  public class FileDemo {

  public static void main(String[] args) {

  String pathname = "E:\Recommended system";

  // 创建文件实例

  File file = new File(pathname);

  // 文件过滤

  File[] files = file.listFiles(new FilenameFilter() {

  @Override

  public boolean accept(File file, String filename) {

  return filename.endsWith(".mp3");

  }

  });

  // 打印输出

  for (File file2 : files) {

  System.out.println("名称:"+file2.getName());

  }//for

  }

  }

  运行结果:

  名称:baidu-salon-38-1.mp3

  名称:天猫推荐算法.mp3

  名称:百度推荐实践.mp3

  列出文件夹下的全部问价或目录:

  package com.qunar.bean;

  import java.io.File;

  public class FileDemo {

  public static void ListAllFile(File file){

  if(!file.exists()){

  throw new IllegalArgumentException("目录["+file+"]不存在");

  }//if

  if(!file.isDirectory()){

  throw new IllegalArgumentException("["+file+"]不是目录");

  }//if

  // 列出指定路径下的全部文件或目录

  File[] files = file.l