IO基础加强 day02

----文件名过滤器

public static void main(String[] args) throws IOException {
File fs = new File("c:/abc");
//获取目录下的所有文件
File[] listFiles = fs.listFiles();
for (File file : listFiles) {
System.out.println(file);
}
/* 输出所有文件和文件夹
    c:\abc\1.txt
c:\abc\12
c:\abc\123.txt
c:\abc\123333.txt
c:\abc\dis
c:\abc\xxx7183939415209379196.textsd
*/
System.out.println("---------------");
//只输出为txt类型的文件
File[] listFiles2 = fs.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
//要过滤掉文件夹
if(new File(dir,name).isFile() && name.endsWith(".txt")){
return true;
}else{
return false;
}
}
});
for (File file : listFiles2) {
System.out.println(file);
}
/* 只有.txt类型的文件
    c:\abc\1.txt
c:\abc\123.txt
c:\abc\123333.txt 
*/
//可将代码优化为     --效果同上
File[] listFiles3 = fs.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
//要过滤掉文件夹
return new File(dir,name).isFile() && name.endsWith(".txt");
}
});

}

----流的分类以及创建流的步骤

            /*IO流的分类问题
根据流向划分:    输入流和输出流
根据数据单位划分: 字符流(char)和字节流(byte)  char = 2*byte
根据功能划分:    节点流、包装流
四大基流:字符输入流Reader、字符输出流Write、字节输入流InputStream、字节输出流OutputStream
四大基流都是抽象类(抽象类无法实例化)  其他的流都是继承于这4个基流
*/
//创建文件对象
File f = new File("c:/abc/123.txt");
//创建流
Writer w = new FileWriter(f);
//执行流操作
w.write("这是一个IO流读写文件");

w.flush();//这是刷新流

//最后关闭流 (如果不关流,会导致文件一直被占用windows无法删除,也无法修改文件)

w.close();

----小知识

public static void main(String[] args) throws IOException {
/*文件流(纯文本文档   .txt)
文件字符输入流   fileReader
文件字符输出流   fileWriter
文件字节输入流  fileInputStream
文件字节输出流   fileOutPutStream
*/
//获取系统的所有属性
Properties properties = System.getProperties();
Set<Entry<Object, Object>> entrySet = properties.entrySet();
for (Entry<Object, Object> entry : entrySet) {
System.out.println(entry.getKey()+"--"+entry.getValue());
}
//获取当前项目路径
String property = System.getProperty("user.dir");
System.out.println(property);
}


猜你喜欢

转载自blog.csdn.net/qq_39205291/article/details/80516199