【Java学习】Java IO-File类的理解和总结
来源:互联网 发布:小米id解锁软件 编辑:程序博客网 时间:2024/05/29 03:22
File 文件流
理解
磁盘上的文件系统 要么是文件 要么是目录
注意 path的格式有两种:D:\parogram\file.txt或者D:/program/file.txt
\第一个\是转义字符 第二个在wiindows中代表目录
/在java中仅仅表示一个字符。
详细请看java 正斜杠与反斜杠之分限制
只能对文件进行添加删除的操作,无法对文件中的内容进行修改- 构造方法
File(String path) File(String path,String filename) File(File file,String filename)
- 一般方法
boolean Exists()判断File对象是否存在String getName();File getPath(); 将file类转化为字符串String getParent(); 得到该类上一级路径的字符串形式File getParentFile(); 得到该类上一级路径的file类形式boolean isDirectory() 判断是否是目录boolean isFile() 判断是否为文件String[] list() 返回字符串数组显示所有的目录和文件File[] listFile() 封装到file对象数组中去
String[] list(FileNameFilter filter) 过滤作用
such as:
String s[]=file.list(new FilenameFilter() { @Override public boolean accept(File dir, String name) { // TODO Auto-generated method stub return name.endsWith(".java"); } });
boolean mkdir() 创建file所指向的目录 中间的文件如果不存在 创建失败 boolean mkdirs() 创建所有的目录,包括父目录
boolean createNewFile() 在已经存在的路径上创建一个不存在的文件 若:路径不存在或者该路径下文件已经存在 返回false 否则创建成功 返回true boolean createTempFile(String prefix, String suffix, File dir) 在已经存在的路径dir上创建前缀未perfix后缀名suffix的文件,返回创建完的file对象 long length() 返回文件的大小 boolean delete()删除文件或者目录 boolean canWrite() 是否可写 boolean canRead() 是否可读 boolean canExecute() 是否可以执行
重要说明(补充)
最近写了一段代码 想要遍历磁盘里的所有文件,但是总是会报错,代码如下
package com.javase.io;import java.io.File;import java.util.ArrayList;import java.util.List;public class TestIterator { public static void main(String[] args) { // TODO Auto-generated method stub IteratorUtil.IteratorDir(new File("E:\\")); }}class IteratorUtil{ private static int level=0;// 缩进层数 //迭代方法 public static void IteratorDir(File file) { //file对应的不为null if(file!=null) { //file对应的是文件或者是目录但是目录中子类数目为0--迭代的出口 if(file.isFile()||file.listFiles().length==0) { return; }else { File[] files=file.listFiles(); files=sort(files);//排序 //遍历 for(File f:files) { StringBuffer sb=new StringBuffer(); if(f.isFile()) { sb.append(getTab(level)); sb.append(f.getName()); } else { sb.append(getTab(level)); sb.append(f.getName()); sb.append(".*"); } System.out.println(sb.toString()); //进行迭代 if(f.isDirectory()) { level++; IteratorDir(f); level--; } } } } } //为文件按先文件夹后文件的顺序排序 private static File[] sort(File[] files) { //存放文件的临时容器 List<File> flist=new ArrayList<File>(); //先添加目录 for(File f:files) { if(f.isDirectory()) { flist.add(f); } } //后添加文件 for(File f:files) { if(f.isFile()) { flist.add(f); } } //返回一个指定大小和制定类型的数组 return flist.toArray(new File[flist.size()]); } private static String getTab(int level) { StringBuffer sb=new StringBuffer(); for(int i=0;i<level;i++) { sb.append("\t"); } return sb.toString(); }}
结果如下
总是会报空指针异常
**其实原因是这样的,我的E盘中有系统文件,系统文件不允许访问,所以代码中的file.listFiles().length==0有问题,我一开始以为file.listFiles()这个方法会有问题,但是事实上,这个方法没问题,有问题的是,file.listFile()返回的对象不允许访问,也就是说,length()不能使用。所以,我将file.listFiles().length()==0改为file.listFiles()==null就解决了问题。
那么就说明 如果文件是系统文件,listFiles方法返回的是null;没有null.length()这样的代码!!**
最后:注意系统文件当你在写操作文件的代码时
1 0
- 【Java学习】Java IO-File类的理解和总结
- 【Java学习】Java IO-流概念理解和知识点总结
- Java.io.File类的学习
- Java IO流学习总结二:File
- JAVA\IO\File类学习
- java的java.io.File的学习
- Java io学习之java.nio.file的Path类和Files类
- Java学习笔记 --- IO理解总结
- java IO的File类常用方法总结一
- java IO的File类常用方法总结二
- Java--IO之File类的用法总结
- Java IO知识点总结一(File类)
- Java IO总结(一) File文件类
- Java IO学习札记(File类的使用)
- java IO流中File类的学习笔记
- Java学习笔记之IO(一):File类的用法
- Java.io.File类学习笔记
- Java IO之File类学习
- js遍历/迭代数组
- Android实现Facebook第三方分享
- stardic字典库下载 --批量解压缩和转移
- 树形dp基础题
- UICollectionView 设置头标题和头标题的高度
- 【Java学习】Java IO-File类的理解和总结
- 常见的几种RuntimeException
- jQuery Ajax 实例 ($.ajax、$.post、$.get)
- springmvc_mybatis3
- 用js使得输入框input只能输入数字
- Android 开发Emoji 适配IOS
- 【最长递增子序列+(不下降)二分栈】Educational Codeforces Round 15
- zookeeper适用场景:zookeeper解决了哪些问题
- 驱动拷贝文件