FileWriter本身就是一个缓冲流,需要flush()
这里有一个需要强调的,第二行访问文件的这四个流都属于节点流,节点流是最基本的流,其他为处理流
java.io.File
File类的实例抽象为一个文件或文件夹。对File类对象的操作就相当于是对指定文件或文件夹设为操作。
File类构造器
lastModified()函数是Java中File类的一部分。该函数返回该抽象路径名最后一次修改所表示的时间。
循环创建文件夹
import java.io.File;
import java.util.Scanner;
public class mkdirFile {
public static void main(String[] args) {
// Scanner scan=new Scanner(System.in);
// String str = scan.next();
// File file =new File(str);
// if(!file.exists()){
// file.mkdir();
// }
// File file=new File("C:");
// System.out.println(file.getParent());//null
File file=new File("C:\\java\\java1\\java2");
String parent = file.getParent();
System.out.println(parent);//C:\java\java1
makTest(file);
}
private static void makTest(File file){
Boolean aBoolean = isexitParent(file);
if(aBoolean!=true) {
isexitParent(file);
}
}
private static Boolean isexitParent(File file){
if(file.exists()){
return true;
}else{
File parentFile = file.getParentFile();
if((file.getParent()!=null)&&parentFile.exists()){
// isexitParent(parentFile);
file.mkdir();
}else if(!parentFile.exists()){
parentFile.mkdir();
file.mkdir();
}
isexitParent(parentFile);
}
return false;
}
}
递归二分查找
//递归法二分查找
public class TwoSeacher {
public static void main(String[] args) {
int[] nums={1,2,4,5,6,8,9,12,23,45,67,68,79,80,90,200};
int search = search(nums, 67, 0, nums.length);
System.out.println(search);
}
public static int search(int []a,int target,int start,int end) {
if (start > end) {
return -1;
}
int mid = (end +start) / 2;
int midVal = a[mid];
if (target < midVal) {
return search(a, target, start, mid - 1);
} else if (target > midVal) {
return search(a, target, mid + 1, end);
} else {
return mid;
}
}
}
```## 标题
## 找出指定目录下所有.txt文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/004e9b38ab3f44cf98cd6dbad7ae00f0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATG90dXPCtw==,size_20,color_FFFFFF,t_70,g_se,x_16)
## 创建临时文件
**createTempFile()中第一个是给临时文件的前缀名,第二个是文件后缀名,第三个是保存路径**
![在这里插入图片描述](https://img-blog.csdnimg.cn/7c835c0aa9214402b916cc1bff86291d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATG90dXPCtw==,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/288923cd7e5948b7993d8f1ffb859f43.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATG90dXPCtw==,size_20,color_FFFFFF,t_70,g_se,x_16)
## Properties向文件中写数据,读数据
![在这里插入图片描述](https://img-blog.csdnimg.cn/7615843449ca4f6abf34287872d6e898.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATG90dXPCtw==,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/40cf6f97698f41929ab31d7eaef4de7a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATG90dXPCtw==,size_20,color_FFFFFF,t_70,g_se,x_16)
## 对象序列化流
![在这里插入图片描述](https://img-blog.csdnimg.cn/f415fbfd256f47c7a9e9810671e1d60e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATG90dXPCtw==,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/c687b58f756642cc9c127f5a8cd23ec3.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATG90dXPCtw==,size_20,color_FFFFFF,t_70,g_se,x_16)
## ByteArrayInputStream和ByteArrayOutputStream
**写对象都对象属于序列化,所有切记要给对象的所属类加上Serializable接口**
![在这里插入图片描述](https://img-blog.csdnimg.cn/13d7348b84c74ab0a529617356aea4fd.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATG90dXPCtw==,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/79b594854e994c2eaf476ce588dfbe31.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATG90dXPCtw==,size_20,color_FFFFFF,t_70,g_se,x_16)
## DataInputStream和DataOutputStream
读写基本数据类型数据的一个**处理流**
读写基本类型数据的处理流,可以将基本类型数据的二进制直接进行读写。
![在这里插入图片描述](https://img-blog.csdnimg.cn/6db356f9a69b4c2a8d92bd58a704ad36.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATG90dXPCtw==,size_20,color_FFFFFF,t_70,g_se,x_16)