来源:https://blog.csdn.net/xavvgu/article/details/109593191
遍历子一级文件
初始化:新建一个Java类
1 package com.cei.ceipage.temp; 2 3 import java.io.File; 4 import java.util.Date; 5 6 public class FileTest { 7 8 /** 9 * 获取指定目录下的所有【子一级】文件和文件夹 10 * @param path 11 */ 12 public void fileListTest(String path){ 13 File f = new File(path); 14 // 返回指定文件夹的所有子一级文件和子一级文件夹(再往下的不管) 15 File[] files = f.listFiles(); 16 17 for(File file: files){ 18 System.out.println("是否是目录: " + file.isDirectory()); 19 System.out.println("绝对路径:" + file.getAbsolutePath()); 20 System.out.println("文件名:" + file.getName()); 21 System.out.println("文件大小: " + file.length()); 22 System.out.println("最后修改日期:" + new Date(file.lastModified())); 23 boolean flag = file.canWrite(); 24 25 if(!flag){ 26 System.out.println("只读"); 27 }else{ 28 System.out.println("可写"); 29 } 30 System.out.println(); 31 } 32 } 33 34 public static void main(String[] args) { 35 FileTest fileTest = new FileTest(); 36 fileTest.fileListTest("D:\E\testFolder"); 37 38 } 39 40 }
结果:
遍历指定目录下所有文件
1 package com.cei.ceipage.temp; 2 3 import java.io.File; 4 import java.util.Date; 5 6 public class FileTest { 7 8 /** 9 * 返回指定目录下的所有文件信息 10 * @param file 11 */ 12 public void showFiles(File file){ 13 // 若file是文件,直接打印该文件信息 14 if(file.isFile()){ 15 System.out.println("绝对路径:" + file.getAbsolutePath() + "文件:" + file.getName()); 16 }else{ 17 if(file!=null && file.listFiles()!=null){ 18 // 如果file对象是一个目录,则要遍历,去找出里面所有的文件 19 for(File f: file.listFiles()){ 20 // 递归 21 showFiles(f); 22 } 23 } 24 } 25 } 26 27 28 public static void main(String[] args) { 29 FileTest fileTest = new FileTest(); 30 // fileTest.fileListTest("D:\E\testFolder"); 31 32 File file = new File("D:\E\testFolder"); 33 34 fileTest.showFiles(file); 35 36 } 37 38 }
结果:
文件写入到硬盘 FileWriter
1 package com.cei.ceipage.temp; 2 3 import java.io.File; 4 import java.io.FileWriter; 5 import java.io.IOException; 6 import java.util.Date; 7 8 public class FileTest { 9 10 /** 11 * 文件写入到硬盘 12 */ 13 public void writerTest() throws IOException { 14 // 创建对象 15 FileWriter fileWriter = new FileWriter("D:\E\testFolder\one1.txt"); 16 new File("D:\E\testFolder\one1.txt"); 17 18 // 写入操作 19 fileWriter.write("这条信息写入到one1.txt文件中,它在写入前需先被创建。"); 20 21 // 换到下一行行首 22 fileWriter.write(" 换行,此时调到下一行行首。"); 23 24 // 关闭或刷新 25 fileWriter.close(); 26 // fileWriter.flush(); 27 } 28 29 30 public static void main(String[] args) throws IOException { 31 FileTest fileTest = new FileTest(); 32 fileTest.writerTest(); 33 34 } 35 36 }
结果:
新建的文件中已写入新的内容:
文件读出到内存 FileReader
1 package com.cei.ceipage.temp; 2 3 4 import java.io.*; 5 import java.util.Arrays; 6 import java.util.Date; 7 8 public class FileTest { 9 10 /** 11 * 文件读出到内存 12 */ 13 public void readerTest() throws IOException { 14 FileReader fileReader = new FileReader("D:\E\testFolder\one.txt"); 15 File file = new File("D:\E\testFolder\one.txt"); 16 char[] cbuf = new char[(int) file.length()]; 17 int n = fileReader.read(cbuf); 18 19 System.out.println(Arrays.toString(cbuf)); 20 fileReader.close(); 21 } 22 23 24 public static void main(String[] args) throws IOException { 25 FileTest fileTest = new FileTest(); 26 fileTest.readerTest(); 27 } 28 29 }
结果:
控制台打印结果:
文件读出到内存 BufferedReader
1 package com.cei.ceipage.temp; 2 3 4 import java.io.*; 5 import java.util.Arrays; 6 import java.util.Date; 7 8 public class FileTest { 9 10 11 /** 12 * 文件读出到内存 13 * @throws IOException 14 */ 15 public void bufferReaderTest() throws IOException { 16 FileReader fr = new FileReader("D:\E\testFolder\one.txt"); 17 18 BufferedReader br = new BufferedReader(fr); 19 20 String str = null; 21 while ((str = br.readLine()) != null) { 22 System.out.println(str); 23 } 24 fr.close(); 25 br.close(); 26 } 27 28 29 public static void main(String[] args) throws IOException { 30 FileTest fileTest = new FileTest(); 31 fileTest.bufferReaderTest(); 32 } 33 34 }
结果: