java I/O系统之File流
File类
File(文件)类具有一定的误导性,我们可能会认为它代指的是文件,实际上并非如此,它既能代表一个特定文件的名称,又能和代表一个目录下一组文件的名称。如果他指的是文件集,我们可以调用集合的list方法,这方法会返还一个字符数组。
字段详细信息
static String pathSeparator
与系统有关的路径分隔符,为了方便,它被表示为一个字符串。
static char pathSeparatorChar
与系统有关的路径分隔符。
static String separator
与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。
static char separatorChar
与系统有关的默认名称分隔符。
D:\Java_0408\JavaSE\day05\代码
静态常量成员能够适配不同的操作系统
构造方法
public File(String pathname) pathname文件路径名
public File(String parent,String child) 父路径名 子路径名
public File(File parent,String child) 通过父文件对象和子文件名称构造文件对象
1 public class FileDemo01 { 2 3 4 public static void main(String[] args) { 5 File file = new File("E:\\test\\mygames.txt"); 6 //是否存在 7 System.out.println(file.exists()); 8 //取得文件名 9 System.out.println(file.getName()); 10 //取得文件路径 11 System.out.println(file.getPath()); 12 //取得文件绝对路径 13 System.out.println(file.getAbsolutePath()); 14 //得到父文件夹名 15 System.out.println(file.getParentFile()); 16 //判断文件是否可写 17 System.out.println(file.canWrite()); 18 //判断文件是否可读 19 System.out.println(file.canRead()); 20 //判断是否是目录 21 System.out.println(file.isDirectory()); 22 //判断文件是否存在 23 System.out.println(file.isFile()); 24 //是否是绝对路径名称 25 System.out.println(file.isAbsolute()); 26 //文件最后的修改时间 27 Date date = new Date(file.lastModified()); 28 SimpleDateFormat dateFormat =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 29 String format = dateFormat.format(date); 30 System.out.println(format); 31 System.out.println(date); 32 //文件的大小 33 System.out.println(FileUtils.byteCountToDisplaySize(file.length())); 34 35 } 36 }
例子2
从键盘输入接收一个文件夹路径,打印出该文件夹下所有的.java文件名
1 public class FileDemo06 { 2 3 public static void getAllJavaFile(File files,ArrayList<File> listfiles){ 4 File[] filelist = files.listFiles(); 5 if (filelist != null) { 6 for (File file : filelist) { 7 if (file.isDirectory()) { 8 getAllJavaFile(file, listfiles); 9 }else { 10 String fileName = file.getName(); 11 if (fileName.endsWith(".java")) { 12 listfiles.add(file); 13 } 14 } 15 } 16 } 17 18 } 19 public static void main(String[] args) { 20 String path="D:\\"; 21 File files = new File(path); 22 if (files.exists()&& files.isDirectory()) { 23 ArrayList<File> filelist = new ArrayList<File>(); 24 getAllJavaFile(files, filelist); 25 for (File file : filelist) { 26 System.out.println(file.getAbsolutePath()); 27 } 28 } 29 } 30 }
在实际开发中有Apache提供的IO commons工具包来实现IO流的一些操作。