微信登录

File类 - 文件

  1. package com.atguigu.java3;
  2. import org.junit.Test;
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.util.Date;
  6. /**
  7. * File类的使用
  8. *
  9. * 1. File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹)
  10. * 2. File类声明在java.io包下
  11. * 3. File类中涉及到关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法,
  12. * 并未涉及到写入或读取文件内容的操作。如果需要读取或写入文件内容,必须使用IO流来完成。
  13. * 4. 后续File类的对象常会作为参数传递到流的构造器中,指明读取或写入的"终点".
  14. *
  15. *
  16. *
  17. *
  18. * @author shkstart
  19. * @create 2019 下午 4:05
  20. */
  21. public class FileTest {
  22. /*
  23. 1.如何创建File类的实例
  24. File(String filePath)
  25. File(String parentPath,String childPath)
  26. File(File parentFile,String childPath)
  27. 2.
  28. 相对路径:相较于某个路径下,指明的路径。
  29. 绝对路径:包含盘符在内的文件或文件目录的路径
  30. 3.路径分隔符
  31. windows:\\
  32. unix:/
  33. */
  34. @Test
  35. public void test1(){
  36. //构造器1
  37. File file1 = new File("hello.txt");//相对于当前module
  38. File file2 = new File("D:\\workspace_idea1\\JavaSenior\\day08\\he.txt");
  39. System.out.println(file1);
  40. System.out.println(file2);
  41. //构造器2:
  42. File file3 = new File("D:\\workspace_idea1","JavaSenior");
  43. System.out.println(file3);
  44. //构造器3:
  45. File file4 = new File(file3,"hi.txt");
  46. System.out.println(file4);
  47. }
  48. /*
  49. public String getAbsolutePath():获取绝对路径
  50. public String getPath() :获取路径
  51. public String getName() :获取名称
  52. public String getParent():获取上层文件目录路径。若无,返回null
  53. public long length() :获取文件长度(即:字节数)。不能获取目录的长度。
  54. public long lastModified() :获取最后一次的修改时间,毫秒值
  55. 如下的两个方法适用于文件目录:
  56. public String[] list() :获取指定目录下的所有文件或者文件目录的名称数组
  57. public File[] listFiles() :获取指定目录下的所有文件或者文件目录的File数组
  58. */
  59. @Test
  60. public void test2(){
  61. File file1 = new File("hello.txt");
  62. File file2 = new File("d:\\io\\hi.txt");
  63. System.out.println(file1.getAbsolutePath());
  64. System.out.println(file1.getPath());
  65. System.out.println(file1.getName());
  66. System.out.println(file1.getParent());
  67. System.out.println(file1.length());
  68. System.out.println(new Date(file1.lastModified()));
  69. System.out.println();
  70. System.out.println(file2.getAbsolutePath());
  71. System.out.println(file2.getPath());
  72. System.out.println(file2.getName());
  73. System.out.println(file2.getParent());
  74. System.out.println(file2.length());
  75. System.out.println(file2.lastModified());
  76. }
  77. @Test
  78. public void test3(){
  79. File file = new File("D:\\workspace_idea1\\JavaSenior");
  80. String[] list = file.list();
  81. for(String s : list){
  82. System.out.println(s);
  83. }
  84. System.out.println();
  85. File[] files = file.listFiles();
  86. for(File f : files){
  87. System.out.println(f);
  88. }
  89. }
  90. /*
  91. public boolean renameTo(File dest):把文件重命名为指定的文件路径
  92. 比如:file1.renameTo(file2)为例:
  93. 要想保证返回true,需要file1在硬盘中是存在的,且file2不能在硬盘中存在。
  94. */
  95. @Test
  96. public void test4(){
  97. File file1 = new File("hello.txt");
  98. File file2 = new File("D:\\io\\hi.txt");
  99. boolean renameTo = file2.renameTo(file1);
  100. System.out.println(renameTo);
  101. }
  102. /*
  103. public boolean isDirectory():判断是否是文件目录
  104. public boolean isFile() :判断是否是文件
  105. public boolean exists() :判断是否存在
  106. public boolean canRead() :判断是否可读
  107. public boolean canWrite() :判断是否可写
  108. public boolean isHidden() :判断是否隐藏
  109. */
  110. @Test
  111. public void test5(){
  112. File file1 = new File("hello.txt");
  113. file1 = new File("hello1.txt");
  114. System.out.println(file1.isDirectory());
  115. System.out.println(file1.isFile());
  116. System.out.println(file1.exists());
  117. System.out.println(file1.canRead());
  118. System.out.println(file1.canWrite());
  119. System.out.println(file1.isHidden());
  120. System.out.println();
  121. File file2 = new File("d:\\io");
  122. file2 = new File("d:\\io1");
  123. System.out.println(file2.isDirectory());
  124. System.out.println(file2.isFile());
  125. System.out.println(file2.exists());
  126. System.out.println(file2.canRead());
  127. System.out.println(file2.canWrite());
  128. System.out.println(file2.isHidden());
  129. }
  130. /*
  131. 创建硬盘中对应的文件或文件目录
  132. public boolean createNewFile() :创建文件。若文件存在,则不创建,返回false
  133. public boolean mkdir() :创建文件目录。如果此文件目录存在,就不创建了。如果此文件目录的上层目录不存在,也不创建。
  134. public boolean mkdirs() :创建文件目录。如果此文件目录存在,就不创建了。如果上层文件目录不存在,一并创建
  135. 删除磁盘中的文件或文件目录
  136. public boolean delete():删除文件或者文件夹
  137. 删除注意事项:Java中的删除不走回收站。
  138. */
  139. @Test
  140. public void test6() throws IOException {
  141. File file1 = new File("hi.txt");
  142. if(!file1.exists()){
  143. //文件的创建
  144. file1.createNewFile();
  145. System.out.println("创建成功");
  146. }else{//文件存在
  147. file1.delete();
  148. System.out.println("删除成功");
  149. }
  150. }
  151. @Test
  152. public void test7(){
  153. //文件目录的创建
  154. File file1 = new File("d:\\io\\io1\\io3");
  155. boolean mkdir = file1.mkdir();
  156. if(mkdir){
  157. System.out.println("创建成功1");
  158. }
  159. File file2 = new File("d:\\io\\io1\\io4");
  160. boolean mkdir1 = file2.mkdirs();
  161. if(mkdir1){
  162. System.out.println("创建成功2");
  163. }
  164. //要想删除成功,io4文件目录下不能有子目录或文件
  165. File file3 = new File("D:\\io\\io1\\io4");
  166. file3 = new File("D:\\io\\io1");
  167. System.out.println(file3.delete());
  168. }
  169. }
File类 - 文件