9.[Java开发之路](6)File类的使用

1. 构造方法

构造方法 描述
File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建一个新的文件实例。
File(String parent , String child) 通过给定的父路径名字符串和子路径名字符串来创建一个新的文件实例。
File(File parent , String child) 通过给定的父抽象路径对象和子路径名字符串来创建一个新的文件实例。
File(URI uri) 通过给定的URI来创建一个新的文件实例
  1. package com.qunar.bean;
  2. import java.io.File;
  3. import java.net.URISyntaxException;
  4. public class FileDemo {
  5. public static void main(String[] args) throws URISyntaxException {
  6. String pathname = "E:\\Recommended system";
  7. // File(String pathname)
  8. File file1 =new File(pathname);
  9. // File(String parent,String child)
  10. File file2 =new File(pathname,"train_data.txt");
  11. // File(File parent,String child)
  12. File file3 = new File(file1, "train_data.txt");
  13. // File(URI uri)
  14. // File file4 =new File(new URI(""));
  15. // separator 跨平台分隔符
  16. File file4 =new File("E:"+File.separator+"Recommended system");
  17. System.out.println(file1);
  18. System.out.println(file2);
  19. System.out.println(file3);
  20. System.out.println(file4);
  21. }
  22. }

运行结果:

E:\Recommended system

E:\Recommended system\train_data.txt

E:\Recommended system\train_data.txt

E:\Recommended system

2. 创建与删除方法

方法 描述
boolean createNewFile() 如果文件存在返回false,否则返回true并且创建文件 
boolean mkdir() 创建目录
boolean mkdirs() 创建多级目录
boolean delete() 如果文件存在返回true并且删除文件,否则返回false
boolean deleteOnExit() 文件使用完成后删除
  1. package com.qunar.bean;
  2. import java.io.File;
  3. import java.io.IOException;
  4. import java.net.URISyntaxException;
  5. public class FileDemo {
  6. public static void main(String[] args) throws URISyntaxException {
  7. String pathname = "D:\\Recommended system.txt";
  8. // 创建文件实例
  9. File file = new File(pathname);
  10. try {
  11. // 如果文件存在返回false,否则返回true并且创建文件
  12. if(file.createNewFile()){
  13. System.out.println("创建文件["+pathname+"]");
  14. }//if
  15. else{
  16. System.out.println("文件["+pathname+"]已存在");
  17. }//else
  18. } catch (IOException e) {
  19. e.printStackTrace();
  20. }
  21. }
  22. }
  1. package com.qunar.bean;
  2. import java.io.File;
  3. public class FileDemo {
  4. public static void main(String[] args) {
  5. String pathname = "D:\\Recommended system.txt";
  6. // 创建文件实例
  7. File file = new File(pathname);
  8. //如果文件存在返回true并且删除文件,否则返回false
  9. if(file.delete()){
  10. System.out.println("删除文件["+pathname+"]");
  11. }//if
  12. else{
  13. System.out.println("文件["+pathname+"]不存在");
  14. }//else
  15. }
  16. }
  1. package com.qunar.bean;
  2. import java.io.File;
  3. public class FileDemo {
  4. public static void main(String[] args) {
  5. String pathname = "D:\\Recommended system";
  6. String pathname2 = "D:\\Recommended system2\\Paper\\News";
  7. // 创建文件实例
  8. File file = new File(pathname);
  9. File file2 = new File(pathname2);
  10. //如果目录不存在返回true并且创建目录,否则返回false
  11. if(file.mkdir()){
  12. System.out.println("创建目录["+pathname+"]");
  13. }//if
  14. else{
  15. System.out.println("目录["+pathname+"]已存在");
  16. }//else
  17. //如果多级目录不存在返回true并且创建多级目录,否则返回false
  18. if(file2.mkdirs()){
  19. System.out.println("创建多级目录["+pathname2+"]");
  20. }//if
  21. else{
  22. System.out.println("多级目录["+pathname2+"]已存在");
  23. }//else
  24. }
  25. }

3. 判断方法

方法 描述
boolean canExecute() 判断文件是否可执行
boolean canRead() 判断文件是否可读
boolean canWrite() 判断文件是否可写
boolean exists() 判断文件是否存在
boolean isDirectory()
boolean isFile()
boolean isHidden()
boolean isAbsolute() 判断是否是绝对路径 文件不存在也能判断
  1. package com.qunar.bean;
  2. import java.io.File;
  3. public class FileDemo {
  4. public static void main(String[] args) {
  5. String pathname = "D:\\Recommended system\\train_data.txt";
  6. // 创建文件实例
  7. File file = new File(pathname);
  8. // 判断文件是否可执行
  9. if(file.canExecute()){
  10. System.out.println("文件["+pathname+"]可执行");
  11. }//if
  12. else{
  13. System.out.println("文件["+pathname+"]不可执行");
  14. }//else
  15. // 判断文件是否可读
  16. if(file.canRead()){
  17. System.out.println("文件["+pathname+"]可读");
  18. }//if
  19. else{
  20. System.out.println("文件["+pathname+"]不可读");
  21. }//else
  22. // 判断文件是否可写
  23. if(file.canWrite()){
  24. System.out.println("文件["+pathname+"]可写");
  25. }//if
  26. else{
  27. System.out.println("文件["+pathname+"]不可写");
  28. }//else
  29. // 判断文件是否存在
  30. if(file.exists()){
  31. System.out.println("文件["+pathname+"]存在");
  32. }//if
  33. else{
  34. System.out.println("文件["+pathname+"]不存在");
  35. }//else
  36. // 判断文件是否是目录
  37. if(file.isDirectory()){
  38. System.out.println("文件["+pathname+"]是目录文件");
  39. }//if
  40. else{
  41. System.out.println("文件["+pathname+"]不是目录文件");
  42. }//else
  43. // 判断是否是一个绝对路径
  44. if(file.isAbsolute()){
  45. System.out.println("["+pathname+"]是绝对路径");
  46. }//if
  47. else{
  48. System.out.println("["+pathname+"]不是绝对路径");
  49. }//else
  50. }
  51. }

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) 返回满足过滤器要求的一个文件对象数组
  1. package com.qunar.bean;
  2. import java.io.File;
  3. public class FileDemo {
  4. public static void main(String[] args) {
  5. String pathname = "E:\\Recommended system";
  6. // 创建文件实例
  7. File file = new File(pathname);
  8. // 返回文件或者目录的名称
  9. System.out.println("GetName->"+file.getName());
  10. // 返回路径
  11. System.out.println("GetPath->"+file.getPath());
  12. // 返回文件长度
  13. System.out.println("Length->"+file.length());
  14. // 返回给定路径下的文件和目录字符串数组
  15. String[] files = file.list();
  16. for (String name : files) {
  17. System.out.println("名称:"+name);
  18. }//for
  19. File[] files2 = file.listFiles();
  20. for (File file2 : files2) {
  21. if(file2.isFile()){
  22. System.out.println("文件名称:"+file2.getName());
  23. }//if
  24. else if(file2.isDirectory()){
  25. System.out.println("目录名称:"+file2.getName());
  26. }//else
  27. }//for
  28. // 列出可用的系统盘
  29. File[] files3 = file.listRoots();
  30. for (File file3 : files3) {
  31. System.out.println("文件名称:"+file3.getPath());
  32. }
  33. }
  34. }

运行结果:

GetName->Recommended system

GetPath->E:\Recommended system

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:\  

文件过滤例子:

  1. package com.qunar.bean;
  2. import java.io.File;
  3. import java.io.FilenameFilter;
  4. public class FileDemo {
  5. public static void main(String[] args) {
  6. String pathname = "E:\\Recommended system";
  7. // 创建文件实例
  8. File file = new File(pathname);
  9. // 文件过滤
  10. File[] files = file.listFiles(new FilenameFilter() {
  11. @Override
  12. public boolean accept(File file, String filename) {
  13. return filename.endsWith(".mp3");
  14. }
  15. });
  16. // 打印输出
  17. for (File file2 : files) {
  18. System.out.println("名称:"+file2.getName());
  19. }//for
  20. }
  21. }

运行结果:

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

名称:天猫推荐算法.mp3

名称:百度推荐实践.mp3

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

  1. package com.qunar.bean;
  2. import java.io.File;
  3. public class FileDemo {
  4. public static void ListAllFile(File file){
  5. if(!file.exists()){
  6. throw new IllegalArgumentException("目录["+file+"]不存在");
  7. }//if
  8. if(!file.isDirectory()){
  9. throw new IllegalArgumentException("["+file+"]不是目录");
  10. }//if
  11. // 列出指定路径下的全部文件或目录
  12. File[] files = file.listFiles();
  13. for (File fileName : files) {
  14. // 判断是否是目录 如果是递归
  15. if(fileName.isDirectory()){
  16. ListAllFile(fileName);
  17. }//if
  18. // 否则打印输出
  19. else{
  20. System.out.println(fileName.getPath());
  21. }//else
  22. }//for
  23. }
  24. public static void main(String[] args) {
  25. String pathname = "E:\\Recommended system";
  26. // 创建文件实例
  27. File file = new File(pathname);
  28. // 列出全部文件或目录
  29. ListAllFile(file);
  30. }
  31. }

运行结果:

E:\Recommended system\540135b87c6d0.csv

E:\Recommended system\5403c3df31780.doc

E:\Recommended system\baidu-salon-38-1.mp3

E:\Recommended system\baidu-salon-38-1.pdf

E:\Recommended system\TextAnalysis.rar

E:\Recommended system\train_data.txt

E:\Recommended system\中文停用词表(比较全面_有1208个停用词).txt

E:\Recommended system\主题提起\中文新闻关键事件的主题句识别.pdf

E:\Recommended system\主题提起\加入时间因素的个性化信息过滤技术.pdf

E:\Recommended system\主题提起\动态新闻主题信息推荐系统设计.pdf

...

E:\Recommended system\协同过滤\PatternRecognitionAndMachineLearning.pdf

E:\Recommended system\协同过滤\一种改进的Item-based协同过滤推荐算法.pdf

E:\Recommended system\协同过滤\一种电影个性化推荐系统的研究与实现.pdf

E:\Recommended system\协同过滤\个性化搜索引擎中用户协作推荐算法的研究.pdf

E:\Recommended system\协同过滤\个性化新闻推荐引擎中新闻分组聚类技术的研究与实现.caj

E:\Recommended system\协同过滤\协同过滤技术在个性化推荐中的运用.pdf

E:\Recommended system\协同过滤\基于协同过滤的个性化新闻推荐系统的研究与实现.caj

E:\Recommended system\协同过滤\基于矩阵分解的协同过滤算法.pdf

....

E:\Recommended system\天猫推荐算法.mp3

E:\Recommended system\天猫推荐算法.pdf

E:\Recommended system\推荐系统入门.zip

.....

来自为知笔记(Wiz)

时间: 2024-10-16 03:08:24

9.[Java开发之路](6)File类的使用的相关文章

J2SE知识点归纳笔记(七)---Java IO Part 1:File类与RandomAccessFile类

J2SE知识点归纳笔记(七)---Java IO Part 1:File类与RandomAccessFile类                                                                 --转载请注明出处:coder-pig 本节引言: 兜兜转转,又回来写Java了,上一篇J2SE知识点归纳笔记(六)---Java常用类是上2014.4.14写的,时隔一年 又来重拾之前还没写完的系列了,前些天群里一个妹子反映她Java基础薄弱,然后抱怨在cs

Java IO学习笔记:File类

File类 在整个IO包了,唯一表示与文件本身有关的类就是File类.使用File类可以进行1创建或删除文件等常用操作.要想使用File类.则首先要观察File类的构造方法,此类的      常用构造方法如下所示:public File(String pathname) 实例化File类的时候,必须设置好路径 No. 方法或常量 类型 描述 1 public static final String pathSeparator 常量 表示路径的分隔符(windows是“;”) 2 public s

黑马程序员——Java基础--IO流(一)---File类以及其他流对象

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.File类 File类是将文件系统中的文件和文件夹封装成了对象.提供了更多的属性和行为可以对这些文件和文件夹进行操作.这些是流对象办不到的,因为流只操作数据.File对象可以作为参数传递给流对象的构造函数.File 类的实例是不可变的:也就是说,一旦创建,File 对象表示的抽象路径名将永不改变. 1.File类中的方法 (1).File类的构造方法以及字段 1 new File(Stri

Java中Io流操作-File类的常用操作-创建文件,创建文件夹

package com.hxzy.IOSer; import java.io.File;import java.io.IOException; public class Demo03 { public static void main(String[] args)throws Exception{ Gu_1(); Gu_2(); } /* * 2.File对象调用file.mkdirs() * 可以创建多层文件夹 * 这个方法是创建文件夹的 返回的同样是布尔值 * 同样需要File类的构造方法

[Java开发之路](6)File类的使用

1. 构造方法 构造方法 描写叙述 File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建一个新的文件实例. File(String parent , String child) 通过给定的父路径名字符串和子路径名字符串来创建一个新的文件实例. File(File parent , String child) 通过给定的父抽象路径对象和子路径名字符串来创建一个新的文件实例. File(URI uri) 通过给定的URI来创建一个新的文件实例 package c

[Java开发之路](7)RandomAccessFile类详解

RandomAccessFile适用于大小已知的记录组成的文件,提供的对文件访问,既可以读文件,也可以写文件,并且支持随机访问文件,可以访问文件的任意位置.文件中记录的大小不一定都相同,只要我们知道记录的大小和位置.但是该类仅限于操作文件. RandomAccessFile不属于InputStream和OutputStream继承层次结构中的一部分.除了实现DataInput和DataOutput接口之外(DataInputStream和DataOutputStream也实现了这两个接口),它和

[Java开发之路](7)RandomAccessFile类具体解释

RandomAccessFile适用于大小已知的记录组成的文件.提供的对文件訪问.既能够读文件.也能够写文件,而且支持随机訪问文件.能够訪问文件的任何位置. 文件里记录的大小不一定都同样.仅仅要我们知道记录的大小和位置.可是该类仅限于操作文件. RandomAccessFile不属于InputStream和OutputStream继承层次结构中的一部分.除了实现DataInput和DataOutput接口之外(DataInputStream和DataOutputStream也实现了这两个接口),

[Java开发之路](20)try-with-resource 异常声明

Try-with-resources是java7中一个新的异常处理机制,它能够很容易地关闭在try-catch语句块中使用的资源. 在java7以前,程序中使用的资源需要被明确地关闭,过程有点繁琐,如下所示: package com.qunar.lectures.tryResource; import java.io.*; import java.util.ArrayList; import java.util.List; /** * Created by xiaosi on 16-3-4. *

7.[Java开发之路](5)异常

1. 异常分类 在Java程序设计语言中,异常对象都是派生于Throwable类的一个实例.其是如果Java中的异常类不能满足需求,用户可以创建自己的异常类. 下图是Java异常层次结构的一个简化示意图. 从图上可以看出,所有的异常都是继承于Throwable类,但是在下一层立即分解为两个分支:Error和Exception. (1)Error Error描述了Java运行时系统的内部错误和资源耗尽错误.应用程序不应该抛出这种类型的错误,如果出现了这样的内部错误,除了通告用户,并尽力使程序安全的