首页 > 代码库 > Java IO学习第一天部分详解

Java IO学习第一天部分详解

初学Java,记录总结老师授课的IO基础笔记

IO流:(Input OutPut) 输入输出流: 输入 :将文件读到内存中  输出:将文件输出到其他地方。

IO技术的作用 : 主要就是解决设备和设备之间的数据传输问题。 比如:硬盘到---》内存  ,内存数据---》硬盘中   把键盘中的数据写入到内存。

IO的应用场景:
比如: 打卡机到出信息表
比如: 注册的时候图片的上传。
比如 : 下载功能
解析XML

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

学习文件的操作

java 中如何操作文件:

java 中是通过File 文件类来操作文件和文件夹。

学习文件类的构造方法:

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

         File file = new File(D:\\java学习/a.txt);

          System.out.println("是否存在文件?" + file.exists());

       File(File parent, String child)  根据parent 抽象路径名和child路径名字符串创建一个新的File实例

          File parent = new File(D:\\);

          File file = new File(parent,"java学习/a.text");

           System.out.println("是否存在文件?" + file.exists());

       File(String parent, String child)  根据parent 路径名字字符串和child 路径名字字符串创建创建一个新 File 实例         

             File file = new File("D:" + File.separator,"java学习/a.txt")

             System.out.println("是否存在文件?" + file.exists());  

            //获取系统默认的分隔符
            //System.out.println(File.separator);

 

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

路径问题:

 绝对路径:文件在硬盘的完整路径。绝对路径一般都是以盘符开头 D:\\java学习  绝对路径

 相对路径:相对路径就是资源文件相对当前程序所在的路径

      File中的常用方法:

             创建CreateNewFile()    在指定位置创建一个空文件,成功就返回true,如果已存在就不创建然后返回falsea

                

           //在指定的位置创建一个空的文件

           /*File file = new File("D:\\aa");
            System.out.println("通过指定的路径创建一个空的文件"+file.createNewFile());

 

             mkdir() 在指定位置创建目录,这只会创建最后一级目录,如果上级目录不存在就抛异常。

            

               1.不能够有同名的文件或文件夹 2.只能创建单级文件夹

              File dir = new File("D:\\cc"); //
              System.out.println("创建文件夹成功吗"+dir.mkdir());

 

             mkdirs() 在指定位置创建目录,这会创建路径中所有不存在的目录。 

           File dirs = new File("D:\\bb\\aa");
           System.out.println("创建文件夹成功吗?"+dirs.mkdirs());

             renameTo(File dest) 重命名文件或文件夹,也可以操作非空的文件夹,文件不同时相当于文件的剪切,剪切时候不能操作非空的文件夹。移动/重命名成功则返回true,失败则返回false。

            

              File file = new File("D:\\java学习/a.txt");
               System.out.println("是否找到该文件夹?"+file.exists());
               File destFile = new File("D:\\aabb"); //指的是重命名的名字
                System.out.println("重命名成功吗?"+file.renameTo(destFile));*/ // 重命名文件夹

           

              // 重命名文件
                  File file = new File("D:\\aa");
                 System.out.println("重命名成功吗?"+file.renameTo(new File("D:\\aa.txt")));

             /如果我是更改盘符 : renameTo 是做剪切的操作。
                    File file = new File("D:\\aa.txt");
                 System.out.println("重命名成功吗"+file.renameTo(new File("G:\\aa.txt")));

          

          

    

              delete() 删除文件或一个空文件夹,如果是文件夹且不为空,则不能删除,成功返回true,失败返回false。

               File file = new File("D:\\java学习/a.txt")

                System.out.println("删掉了吗?" + file.delete());
              deleteOnExit() 在虚拟机终止时,请求删除此抽象路径名表示的文件或目录,保证程序异常时创建的临时文件也可以被删除

              file.deleteOnExit();

             System.out.println("哈哈");

  

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

public class Demo3{

        

      public static void main(String[] args){

             File file = new Flie ("D:\\a.txt");

             System.out.println("存在吗?"+ file.exists());

              File file2 = new Flie ("D:\\bb");

           // File file3 = new Flie ("..\\..\\..\\bb");

//-----------------------------------------------------------------------------------

        获取方法:

           System.out.println("获取文件名称" +file.getName());  //获取文件名称,你写的是什么名就是什么名字。

           System.out.println("获取路径" +file.getPath());

            System.out.println("获取文件的绝对路径" +file.getAbsolutePath());

           System.out.println("获取文件的大小" +file. getTotalSpace());

           //以字节为单位1kb=1024b  1M = 1024KB  1G = 1024M;

           获取某个文件夹的大小:

          //思路:!! 获取文件夹中所有的文件包括子文件夹中的文件,将所有文件的大小累加!!

          

             System.out.println("获取父目录" +file. getParent()); //除了文件以外的所有部分

              //想要删除某个文件夹一周前的数据。

             !!以毫秒为单位的

               System.out.println("最后一次修改的时间" + file.lastModified());

              //转成平常的时间

               long time = file.lastModified();

               Date  date = new Date(time);

               SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

               System.out.println("最后一次修改的时间” +dateFormat.format(date));

 

              //文件夹的操作

              /* File[] files = File.listRoots(); //获取windows所有盘符

                 for(File file : files){

                System.out.println("盘符"+ file);m

                }*/

              //获取指定文件夹下文件和子目录,子目录中的东西是获取不到的

               /*  File file = new File("D:\\java学习/a.txt");

                 String[] nameStrings = file.list();

                 for(String string : nameStrings){

                  Syetem.out.println(String);   

                  }*/

                File file = new File("D:\\java学习/a.txt");

                File[] files = file.listFiles();

               for(File file2 : files){

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

                //判断file2指的是文件还是文件夹

                  if(file2.isDirectory()){

                        从子目录中再次获取值

                    File[] nextFiles = file2.listFiles();

                   for(File file3: nextFiles){

                  System.out.println("subname" + file3.getName());

                   }

                }

                }

                 

 

                //查找指定的后缀名的文件

           /*    File file = new File("D:\\java学习/a.txt);

             //定义一个过滤器

            //FilenameFilter    一个接口

             String[] strings = file.list(new MyFilter());

            for(String string : string){

             System.out.println(String);

               }*/

 

           


                 /*判断方法:
                   exists() 文件或文件夹是否存在。
                   isFile() 是否是一个文件,如果不存在,则始终为false。
                   isDirectory() 是否是一个目录,如果不存在,则始终为false。
                   isHidden() 是否是一个隐藏的文件或是否是隐藏的目录。
                    isAbsolute() 测试此抽象路径名是否为绝对路径名。

 

                 */

 

 

            if(file.exists()){

             System.out.println("是文件吗?" + file.isFile());

             System.out.println("是文件吗?" + file.isDirectory());

             System.out.println("是隐藏文件吗?" + file.isHidden());

             System.out.println("是隐藏文件吗?" + file2.isHidden());

              System.out.println("是绝对路径吗?" + file3.isAbsolute());

         

}

 

 

}

}

 

Java IO学习第一天部分详解