1.列出指定路径下的文件数。
importjava.io.File;
import java.io.FilenameFilter;
importjava.io.IOException;
importjava.util.Date;
public class Test {
staticint count=0; //文件数
staticint count1=0; //文件夹数
staticint null_count=0; //空文件数
staticint size=0; //文件大小
static long maxSize=0;
static String maxFilePath=""; //找出最大的文件
publicstatic void getFile(File f)throws Exception{
if(f.isFile()==true){
//判断是否是文件,是的话进入if,统计个数,否的话进入循环,如果下一次还是文件夹的话则再次调用getFile(Filef)
count++;
size+=f.length();
if(maxSize
maxSize=f.length();
maxFilePath=f.getPath();
}
}else{
count1++;
File[] fs=f.listFiles();
if(fs==null){
null_count++;
return;
}
if(fs.length==0){
null_count++;
}
for(File file:fs){
getFile(file);
}
}
}
public static void main(String[] args) throwsException{
getFile(new File("c:\\"));
System.out.println("c盘中有"+count+"个文件");
System.out.println("c盘的大小"+size/(float)1024/1024/1024+"GB");
System.out.println("c盘中有文件夹"+count1+"个");
System.out.println("c盘中有空文件夹"+null_count+"个");
System.out.println("c盘中最大的文件是"+maxFilePath);
System.out.println("c盘中最大文件的大小是"+maxSize/(float)1024/1024/1024+"GB");
}
}
2.文件过滤器
importjava.io.File;
importjava.io.FilenameFilter;
importjava.io.IOException;
public class Test1 {
public static void main(String[] args) throwsIOException {
File f = new File("c:\\");
File[] fs = f.listFiles(new FilenameFilter() {
publicboolean accept(File dir, Stringname) {
return newFile(dir,name).isFile();
}
});
for(File file : fs) {
String str=file.getName();
if(str.endsWith("java")==true){
System.out.println(str);
}
}
}
}
3.IO流
Input outout
8位 输出 字节
1.Io
16位 输出 字符
2. input
8位流 java d:/a.txt
|
字节 位
磁盘
字节 位
3. 8位流的祖先类 InputStream(抽象类) 基本的输入输出操作由本身完成,其他操作由子类完成
子类有:(吸入吐出的都是字节)
1.FileInputStream 抽象类及子类,类文件必须要用到的类
2.DataInputStream 具备数据类型或格式转换的功能
3.ObjectInputStream 对象流 (产品流和处理流)
4.BufferedInputStream 是具有缓冲功能的输入字节类
InputStream子类对象继承InputStream类的方法:
(1)read():int 读进8位转成10位输出,所以拿到的是10位的数,读到文件末时返回-1.
(2)read(bety[]):int 传进的是数组,返回Int int告诉我们本次读了多少字符。若数组长度为3,文件长度为10,需读取4次,最后一次读一个字节。
(3)read(byte[],int,int):int 第一个int表示起始位即从数组的第几位开始存放;第二个int表示要存放多长,返回-1时说明读完了。
(4)skip(long):long 跳过字节 skip(100)则从101处开始读取 支持断点下载
(5)close():void 关闭
4.OutputSream类
1.FileOutStream 是用来对本地磁盘文件进行写入操作。是一个抽象类
2.DataOutStream 具备数据类型或格式转换功能,即像流中写入数据时,可以实现对二进制字节数据的编码功能。
3.ObjectOutputStream 产品流及处理包,就是把字节加工成想要的形式
4.BufferedOutputStream 是具备缓冲功能的输出字节类
5.PrintStream 提供流的格式化输出功能
注:这些流不能单独使用,因为基本的读入和读出必须依赖于FileInputStream和FileOutStream,只有一些基本的处理方法。
5.OutPutStream子类继承以下方法:
(1)write(int):void 将参数的低位字节写入输出流
(2)write(byte[]):void 将数组中的全部字节顺序写入到输出流
(3)write(byte[],int,int):void
(4)plush():void 清空缓存
(5)close():void