java IO流技术 之 File

IO流技术

  概念:input - output 输入输出流:

  输入:将文件读到内存中;

  输出:将文件从内存中写出到其他地方

  作用:主要就是解决设备和设备之间的数据传输问题。

File :文件类的使用十分重要

(一)file的构造方法

 1     public static void test1(){
 2
 3         //三种拼接路径方式
 4         //1.直接拼接
 5         File filePath = new File("C:\\123\\aaa");
 6         System.out.println("是否存在文件夹--"+filePath.exists());
 7
 8         //2.先拼接根路径,在组合子路径
 9         File parentPath = new File("C:\\123\\aaa");
10         File childPath = new File(parentPath,"bb.txt");
11         System.out.println("是否存在文件夹--"+childPath.exists());
12
13         //3.根路径和子路径使用逗号隔开
14         File filePath2 = new File("C:\\123\\aaa","bb.txt");
15         System.out.println("是否存在文件--"+filePath2.exists());
16
17     }

----------------------------------

(二)基本方法

 1 public static void test2() throws IOException{
 2
 3         //1,.getAbsolutePath()  获取当的本地路径
 4         File file = new File("");
 5         System.out.println("当前java工程的本地绝对路径:"+file.getAbsolutePath());
 6         System.out.println("是否存在文件夹--"+file.exists());
 7
 8
 9         //2,.mkdir() 创建文件夹
10         File dirCreatePath = new File("E:\\abc");
11         System.out.println("文件夹是否创建成功--"+dirCreatePath.mkdir());
12
13         File dirCreatePaths = new File("E:\\abc\\ddd");
14         System.out.println("文件夹是否创建成功--"+dirCreatePaths.mkdirs());
15
16         //3,.createNewFile(); 指定路径创建一个文件,
17         File fileCreatePath = new File("E:\\abc\\123.txt");
18         File fileCreatePath = new File("E:\\abc\\456.txt");
19         System.out.println("是否创建成功"+fileCreatePath.createNewFile());
20
21         //4,oldFileNamePath.renameTo(fileNewNamePath)  重命名
22         //(1)方式一
23         File fileName = new File("E:\\abc\\456.txt");
24         if(fileName.exists()){
25             File fileNewName = new File("E:\\abc\\666.txt");
26             System.out.println("重命名是否成功--"+fileName.renameTo(fileNewName));
27         }else{
28             System.out.println("重命名失败!");
29         }
30
31         //(2)方式二
32         File oldFile = new File("E:\\abc\\666.txt");
33         System.out.println("重命名是否成功--"+oldFile.renameTo(new File("E:\\abc\\888.txt")));
34
35         //(3),更换存储文件夹(或者存储盘)
36         File oldFile = new File("E:\\abc\\888.txt");
37         System.out.println("更换存储文件夹是否成功--"+oldFile.renameTo(new File("E:\\abc\\ddd\\888.txt")));
38
39
40         //5,(1)delete(); 删除文件或者 空 的文件夹
41         File fileDelete = new File("E:\\abc\\123.txt");
42         System.out.println("是否成功删除--"+fileDelete.delete());
43
44         //(2)deleteOnExit();  在jvm退出时候删除
45         File fileDeleteOnExit = new File("E:\\abc\\ddd\\888.txt");
46         System.out.println("是否成功删除--"+fileDeleteOnExit.deleteOnExit());
47
48         for(int i = 0;i<=10000;i++){
49             if(i==10000){ //jvm退出后再执行 deleteOnExit()
50                 System.out.println("jvm 已退出!");
51             }
52         }
53
54     }

----------------------------------

(三)判断方法

 1     //判断方法
 2 //    isFile()        判断是不是文件(是,则返回 true)
 3 //    isDirectory()   判断是不是文件夹(是,则返回true)
 4 //    isHidden()      判断是不是隐藏文件或文件夹(是,则返回true)
 5 //    isAbsolute()    判断是不是绝对路径(是,返回true)
 6
 7     public static void test3(){
 8         File file = new File("E:\\abc\\ggg\\hhh.txt");//文件中
 9         File file2 = new File("E:\\abc\\ggg");
10         if(file2.exists()){
11             System.out.println("是文件?"+file.isFile());
12             System.out.println("2是文件夹?"+file2.isDirectory());
13             System.out.println("2是隐藏文件?"+file2.isHidden());
14             System.out.println("是绝对路径?"+file.isAbsolute());
15             System.out.println("2是绝对路径?"+file2.isAbsolute());
16         }
17     }

----------------------------------

(四)获取方法

 1     //获取方法
 2 //    getName()            获取文件名字(路径最后分隔符后面的名称)
 3 //    getPath()            获取路径
 4 //    length()             获取文件容量大小
 5 //    getParent()          获取文件或文件夹的父类路径
 6 //    getAbsolutePath()    获取绝对路径
 7 //    lastModified()       获取文件最后修改的时间戳(毫秒)
 8
 9     public static void test4(){
10         File file = new File("E:\\abc\\ggg\\hhh.txt");
11         if(file.exists()){
12             System.out.println("文件名称--"+file.getName());
13             System.out.println("文件路径--"+file.getPath());
14             System.out.println("文件绝对路径--"+file.getAbsolutePath());
15             System.out.println("文件大小--"+file.length());
16             System.out.println("文件的父类目录--"+file.getParent());
17             System.out.println("文件路径最后修改时间(毫秒)--"+file.lastModified());
18
19             //将毫秒转为日期
20             long time = file.lastModified();
21             Date date = new Date(time);
22             SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
23             System.out.println("文件路径最后修改时间(毫秒)--"+dateFormat.format(date));
24
25         }else {
26             System.out.println("不存在");
27         }
28
29     }

-----------------------------------

(五)对文件的操作

 1     //文件夹的操作
 2     static int sumByte = 0;
 3     public static void test5(){
 4
 5         //【1】获取盘符,返回数组(不需要new)
 6         File[] fileRoots = File.listRoots();
 7         for(File fileRoot : fileRoots){
 8             System.out.println("本机的磁盘:"+fileRoot);
 9         }
10
11         //【2】获取文件夹的所有文件数组
12         //(1)创建路径
13         File filePath = new File("E:\\IT学习大纲");
14
15         //(2)将路径里的文件及文件夹放到文件类数组中
16         File[] files = filePath.listFiles();
17
18         System.out.println("IT学习大纲:");
19         //(3)将文件数组遍历出来
20         for(File file1Child : files){
21
22             //(4)判断为文件夹则直接打印,如果是文件则打印名字并计算容量大小
23             if(file1Child.isDirectory()){
24                 System.out.println("\n--"+file1Child.getName());
25
26                 //(5)依次嵌套遍历。【也可以使用递归调用的方法来一层一层的遍历出下一级的文件或文件夹】
27                 File[] file2 = file1Child.listFiles();
28                 for(File file2Child : file2){
29                     if(file2Child.isDirectory()){
30
31                         System.out.println("-- --"+file2Child.getName());
32
33                         //(6)
34                         File[] file3 = file2Child.listFiles();
35                         for(File file3Child : file3){
36                             if(file3Child.isDirectory()){
37                                 System.out.println("-- -- --"+file3Child.getName());
38
39                             }else{
40                                 System.out.println("-- -- -->"+file3Child.getName()+"\t"+file3Child.length()+"bt");
41                                 sumByte += file3Child.length();
42                             }
43
44                         }
45                     }else{
46                         System.out.println("-- -->"+file2Child.getName()+"\t"+file2Child.length()+"bt");
47                         sumByte += file2Child.length();
48                     }
49
50                 }
51
52             }else{
53                 System.out.println("-->"+file1Child.getName()+"\t"+file1Child.length()+"bt");
54                 sumByte += file1Child.length();
55             }
56         }
57
58         System.out.println("文件的总容为:"+sumByte);
59
60     }
61
62
63     //【3】查找文件 需要定义一个接口类
64     public static void test6(){
65         File file = new File("E:\\IT学习大纲");
66         System.out.println(file.exists());
67         String[] strings = file.list(new MyFilter());
68
69         for(String string : strings){
70             System.out.println(string);
71         }
72     }
73
74     //查找文件的过滤器
75 //    class MyFilter implements FilenameFilter{
76 //
77 //        @Override
78 //        public boolean accept(File dir, String name) {
79 //            // TODO Auto-generated method stub
80 //
81 //            //设置过滤思路  (这里比较后缀名Java)
82 //            //(1)方法一
83 //            //name = name.substring(name.lastIndexOf("."));
84 //            //return ".java".equals(name);
85 //
86 //            //(2)方法二
87 //            //return name.contains("java");
88 //
89 //            //(3)方法三
90 //            return name.endsWith("java");
91 //        }
92 //    }
93     

陌陌说:

  数据是永久保存到本地,数据保存到磁盘上是以文件的形式保存的

  关于目录分格符:

    Windows系统上的目录分隔符:“\”

    Linux系统上的分隔符:“/”

    注意:   在windows上“\”和“/”都可以作为目录分隔符,

        如果使用的是“\”,目录分隔符就是“\\”;

        如果你使用了“/”,那么分隔符就直接是“/”

时间: 2024-08-24 13:16:42

java IO流技术 之 File的相关文章

Java IO流技术

Java IO流技术 Java IO基本总结 Java的IO技术就是用来处理数据的.比如从文件中读取数据,或者将数据写到文件中.在网络中传输的都是二进制,即字节码,我们需要在传输之前,将我们程序中的数据转换成字节码才能进行传输.Java的IO包内就提供了完成这些工作的工具类. 总的来说:当需要以二进制的形式来处理文件时,即不涉及文本内容的操作时,我们可以选择InputStream和OutputStream来完成我们的工作.当需要完成处理字符串相关的工作时,就需要使用Reader和Writer来完

Java IO流详解(二)——File类

在上一章博客中简单的介绍了Java IO流的一些特征.也就是对文件的输入输出,既然至始至终都离不开文件,所以Java IO流的使用得从File这个类讲起. File类的描述:File类是文件和目录路径名的抽象表示形式,主要用于文件和目录的创建.查找和删除等操作.即Java中把文件或者目录(文件夹)都封装成File对象.也就是说如果我们要去操作硬盘上的文件或者目录只要创建File这个类即可. 不过要注意的是File类只是对文件的操作类,只能对文件本身进行操作,不能对文件内容进行操作. 1.File

Java:IO流与文件基础

Java:IO流与文件基础 说明: 本文所有内容包含图片均为MrSaber自己编写,转载请练习我哦. 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象称作 输入流,可以向其中写入一个字节序列的对象称作 输出流. ? 这些字节序列的来源可以是:文件.网络连接.内存块等. ? 抽象类InputStream和OutputStream是构成输入/输出(I/O)的基础. ? 因为面向字节的流

装饰器模式及JAVA IO流例子★★★☆☆

一.什么是装饰模式 通过关联机制给类增加行为,其行为的扩展由修饰对象来决定: 二.补充说明 与继承相似,不同点在于继承是在编译期间扩展父类,而装饰器模式在运行期间动态扩展原有对象: 或者说,继承是对类进行扩展,装饰模式是对对象进行扩展: 三.角色 抽象构件 具体构件 抽象装饰类 具体装饰类 说明:具体构件.抽象装饰类.具体装饰类的共同父类是抽象构件,具体装饰类继承抽象装饰类并在运行期间装饰具体构件: 四.例子 例子说明: 画家接口Painter,为抽象构件,有两个方法,获取画家描述信息及绘画:

【Android】数据存储-java IO流文件存储

1.数据持久化:将在内存中的瞬时数据保存在存储设备中.瞬时数据:设备关机数据丢失.持久化技术提供一种机制可以让数据在瞬时状态和持久状态之间转换. 2.Android中简单的三种存储方式:文件存储.SharedPreference 存储以及数据库存储. 1.文件存储 :不对数据作任何处理,将数据原封不动地存储到文件中,适合存储一些简单的文本数据和二进制数据. a.将数据存储到文件中 Context类提供了一个openFileOutput()方法,可以用于将数据存储到文件中.这个方法接收两个参数,第

Java IO流学习总结

Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作. IO流的分类 根据处理数据类型的不同分为:字符流和字节流 根据数据流向不同分为:输入流和输出流 字符流和字节流 字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象.本质其实就是基于字节流读取时,去查了指定的码表. 字节流和字符流的区

Java IO流学习总结(转)

原文地址:http://www.cnblogs.com/oubo/archive/2012/01/06/2394638.html Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作.   IO流的分类 根据处理数据类型的不同分为:字符流和字节流 根据数据流向不同分为:输入流和输出流 字符流和字节流 字符

java io流总结

1.java io 字符串 读取.写入一个例子 package sd; import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter; public class MyReadFilezifu { public static void main(String[] args) throws Excep

Java IO流详尽解析(转自 http://www.2cto.com/kf/201312/262036.html)

流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作. IO流的分类 根据处理数据类型的不同分为:字符流和字节流 根据数据流向不同分为:输入流和输出流 字符流和字节流 字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象.本质其实就是基于字节流读取时,去查了指定的码表.字节流和字符流的区别