Java IO流笔记3
来源:互联网 发布:如何登陆淘宝卖家中心 编辑:程序博客网 时间:2024/05/02 03:05
File类
用来将文件或者文件夹封装成对象
方便对文件与文件夹的属性信息进行操作
File对象可以作为参数传递给流的构造函数
static String separator 跨平台的分隔符
String filePath = ‘a.txt’;
System.out.println(new File(filePath)); //结果为filePath,无论文件是否存在
File类的常见方法
1.创建
在指定位置创建文件,如果该文件已经存在,则不创建,返回false;
和输出流不一样,输出流对象一建立则马上创建文件,而且文件存在时会覆盖
boolean createNewFile(); 抛出IOException
创建文件夹
boolean mkdir();创建文件夹
boolean mkdirs();创建多级文件夹
2.删除
boolean delete(); 删除失败返回false
void deleteOnExit(); 在程序退出时删除指定文件
3.判断
boolean exists(); 文件是否存在
对一个文件对象判断是否为文件或者是目录时,必须先判断该文件对象封装的内容是否存在,可通过exsists()判断
boolean isDirectory(); 判断是否是一个目录
boolean isFile(); 判断是否为一个文件
boolean isHidden();判断是否是隐藏文件
boolean isAbsolute();判断是否为绝对路径
4.获取信息
1)String getName();获得文件名
2)String getParent(); //该方法返回的是绝对路径中父目录,如果封装的是相对路径则返回空
3)String getPath(); 和封装的路径有关
4)String getAbsolutePath(); 返回绝对路径
5)long length();获得文件长度
6)long lastModified();获得文件最后一次修改的时间
7)boolean renameTo(File file); 类似于文件移动
8)static File[] listRoots();列出有效盘符
9)String[] list(); 列出指定目录下的所以文件和目录,注意调用list方法的file必须封装了一个目录,且目录必须存在,以字符串数组的形式返回
10)File[] listFiles();列出指定目录下的所以文件和目录,注意调用list方法的file必须封装了一个目录,且目录必须存在,以文件数组的形式返回
练习1:列出目录下所有内容
代码:
public static void main(String[] args) throws IOException {File file = new File("e:/media");if(file.isDirectory()){listFiles(file);}else{System.out.println("该文件不是一个目录");} }static void listFiles(File dir){System.out.println(dir);File[] files = dir.listFiles();for(int i=0; i<files.length; i++){if(files[i].isDirectory()){listFiles(files[i]);}else{System.out.println(files[i]);}}}
运行截图:
如果你希望输出的文件之间带有缩进,可以这样做:
static String getLevel(int level){StringBuilder sb = new StringBuilder();for(int i=0; i<level; i++){sb.append(" ");}sb.append("|--");return sb.toString();}static void listFiles(File dir, int level){System.out.println(getLevel(level)+dir.getName());level++;File[] files = dir.listFiles();for(int i=0; i<files.length; i++){if(files[i].isDirectory()){listFiles(files[i], level);}else{System.out.println(getLevel(level)+files[i].getName());}}
运行截图:
练习2:删除带内容的目录
static void delDir(File dir){File[] files = dir.listFiles();for(int i=0; i<files.length; i++){if(files[i].isDirectory()){delDir(files[i]);}else{files[i].delete();}}dir.delete();}
public static void main(String[] args) throws IOException {File file = new File("D:\\Program Files\\Eclipse\\demo");if(file.isDirectory()){List<File> fileList = new ArrayList<File>();getJavaFiles(file, fileList);PrintWriter pw = new PrintWriter(new FileWriter("f:/javaFileList.txt"));Iterator<File> iter = fileList.iterator();while(iter.hasNext()){pw.println(iter.next().getPath());}pw.close();}else{System.out.println("该文件不是一个目录");} }static void getJavaFiles(File dir, List<File> fileList){File[] files = dir.listFiles();for(File file: files){if(file.isDirectory()){getJavaFiles(file, fileList);}else{if(file.getName().endsWith(".java")){fileList.add(file);}}}}运行截图:
Properties
是HashTable的子类
具备map集合的特点,而且它里面存储的键值对都是字符串
是集合和IO技术相结合的集合容器
该对象的特点:可以用于键值对形式的配置文件
常用方法:
1)String getProperty(String key); 得到属性名对应的值
2)Object setProperty(String key, String value); 调用HashTable的put方法,添加元素
3)Set<String> stringPropertyNames(); 获得属性名的Set集合
4)void load(InputStream in); 从输入流中加载属性列表
5)void load(Reader r);
6)void store(Writer w, String comments); 将属性列表写入到输出流中
7) void store(OutputStream out, String comments);
- Java IO流笔记3
- java IO流笔记
- java IO流笔记
- IO流 【java笔记】
- java笔记 IO流
- java笔记--java IO流
- java笔记-IO流-IO基本操作
- java笔记-io字节流
- java笔记-io字符流
- java IO流 笔记整理
- java笔记之IO流
- java学习笔记--IO流
- Java IO流学习笔记
- Java IO流笔记1
- Java IO流笔记2
- java笔记(IO流)
- java IO输入输出流笔记
- java IO流学习笔记
- [Java 8] (5) 使用Lambda表达式进行设计
- 前/中/后缀的那些事儿
- 开启Hadoop的航程
- 在低电压下使用通用op必须掌握的技巧
- java教程
- Java IO流笔记3
- Find Minimum in Rotated Sorted Array -- LeetCode
- Find Minimum in Rotated Sorted Array II -- LeetCode
- C# 邮件发送方法【webMail方式】
- POJ 2756 Autumn is a Genius 大数加减法
- [Leetcode] Remove Duplicates from Sorted Array II
- [Leetcode] Search in Rotated Sorted Array II
- atexit终止处理函数
- CentOS 7下安装Hadoop2.2