------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流-----
一、概述
File对象用来将文件或者文件夹封装成对象。方便对文件与文件夹的属性信息进行操作 。File对象可以作为参数传递给流的构造函数。Java无法访问隐藏文件。
1、File中的常用方法
三种常用构造函数File() File d = newFile("c:\\abc");
File(File parent,String child) Filef3 = new File(d,"c.txt");
File(String pathname) File f1 = new File("a.txt");
File(String parent,String child) Filef2 = new File("c:\\abc","b.txt");,
2,分隔符功能
static String separator
3,创建
boolean createNewFile()(此功能调用底层方法所以会抛出异常) 在指定位置创建文件,如果该文件已经存在,则不创建,返回false。和输出流不一样,输出流对象一建立就创建文件。而且若文件已经存在,会覆盖。
boolean mkdir(): 创建一级文件夹。
boolean mkdirs(): 创建多级文件夹。
4,删除
boolean delete(): 删除成功返回true,否则返回false。如果文件正在被使用,则无法删除返回false。void deleteOnExit(); 在程序退出时删除指定文件。
5,判断
boolean canExecute(): 判断文件是否可以执行 canWrite() 是否能读boolean exists(); 判断文件是否存在. canRead() 是否能写
boolean isFile(): 是否是文件 compareTo() 按照字母
boolean isDirectory(); 是否是目录 顺序比较
boolean isHidden(); 是否是隐藏文件
boolean isAbsolute(); 是否是绝对路径
注:在判断文件对象是否是文件或者目录时,必须先判断该文件对象封装的内容是否存在。
6,获取信息
String getName(): 获取文件或目录的名称String getPath(): 获取封装的路径
String getParent(): 返回绝对路径中的父目录。若获取的是相对路径,返回null
String getAbsolutePath() 将绝对路径变成字符串并返回
File getAbsoluteFile() 返回文件对象 (文件名字符串通过new就变成文件对象,通过toString()就变成字符串)
long lastModified() 此文件最后一次被修改的时间
long length() 获取文件大小
7,更改名字和目录
public boolean renameTo(File dest) 重新命名此抽象路径名表示的文件8,列出目录中的内容
8.1、方法:Static File listRoots() 列出可用的所有文件系统根 File[] files= File.listRoots();8.2、方法:String[] list() 返回当前目录下所有的文件和文件夹的名称包含隐藏文件。
调用list方法的file对象必须是封装一个目录。该目录还必须存在否则异常 。
8.3、方法:String [] list(FilenameFilterfilter)过滤器
过滤目录中的所有文件并返回所有符合条件的文件的名称,符合条件就返回真,否则就返回假;只返回名称有局限性。
FilenameFilter为接口并且里面只有一个方法:booleanaccept(File dir,String name)
若accept返回真,则返回此文件;若为假,则将此文件过滤掉。
8.4、方法:File[]listFiles()
8.5、方法:File[] listFiles(FilenameFilter filter)
过滤目录中的所有文件并返回所有符合条件的文件的对象;然后可以对获得的对象进行操作;
8.6、方法:File[]listFiles(FileFilter filter) 用过滤器过滤文件,返回特定的文件对象,然后对文件对象进行操作。
9,递归思想(自己调用自己)
递归定义: 函数自己调用自己。注意:1,递归时一定要明确结束条件限定条件。
2,要注意递归的次数。尽量避免内存溢出。应用场景:当某一功能要重复使用时。
代码示例:
小练习 :将一个指定目录下的java文件的绝对路径,存储到一个文本文件中。建立一个java文件列表文件。
代码示例 :
二、Properties集合对象
1、概述
Properties是hashtable的子类。Properties具备map集合的特点。而且它里面存储的键值对都是字符串。
Properties是集合中和IO技术相结合的集合容器。
该对象的特点:可以用于键值对形式的配置文件。
则在加载数据时,需要数据有固定格式:键=值。
2、常用方法
Object setProperty(String key,String value) 调用Hashtable 的方法 put。String getProperty(String key) 返回键的对应值
void load(InputStream inStream):将字节流中的数据加载进集合中;
void load(Reader reader) 将字符流中的数据加载进集合中
void list(PrintWriterout); 列出集合中的所有元素。
void store(OutputStream out,String comments) 将集合中的元素存储到指定的文件中。comments为注释信息。通过字节流存储
void store(Writer writer,String comments) 将集合中的元素存储到指定的文件中。comments为注释信息。通过字符流存储
Set<String>stringPropertyNames() 返回此属性列表的中的所有键集。
代码示例1:
Properties prop = new Properties();
prop.setProperty("zhangsan","30");
prop.setProperty("lisi","39");
Stringvalue = prop.getProperty("lisi");
prop.setProperty("lisi",89+"");
Set<String>names = prop.stringPropertyNames();
for(Strings : names)
{
System.out.println(s+":"+prop.getProperty(s));
}
小练习:用于记录应用程序运行次数。如果使用次数已到,那么给出注册提示。
三、打印流对象
该流提供了打印方法println(),可以将各种数据类型的数据都原样打印。PrintWriter与PrintStream,其中PrintWriter最常用可以代替PrintStream。
1、字节打印流:PrintStream()
构造函数可以接收的参数类型:1,file对象。File
2,字符串路径。String
3,字节输出流。OutputStream
4, 异常强大的打印方法:println()
2、字符打印流:PrintWriter()
构造函数可以接收的参数类型:1,file对象。File
2,字符串路径。String
3,字节输出流。OutputStream
4,字符输出流,Writer(文件对象)。Writer(流对象,true)自动刷新,不用在调用flush().(当把文件封装到流里面就可以自动刷新了)
5, 异常强大的打印方法:println();
注:从以上可以接收的数据类型可以看出PrintWriter()比PrintStream()的功能更强大。
代码示例:四、SequenceInputStream()序列流(合并流)
作用:可以同时将多个流进行合并成一个流。
构造函数:两个流对象 1、SequenceInputStream(InputStreams1,InputStream s2)
多个流对象 2、SequenceInputStream(Enumeration<? Extends InputStream> e)
从构造函数可以看出序列流只能操作字节流。
代码示例:
小练习:切割文件,将一个图片切割成三个碎片,然后在组合成一个完整的图片
代码示例: