io流
文件操作
删除 File f = new File("d:/qr.png");
if(f.exists()) f.delete();
建立空文件
f.createNewFile();
移动文件(修改文件的位置及名称) 相当于 剪贴粘贴
f.renameTo(new File("d:/abc.txt"));
目录操作
建立目录
f.mkdir();
f.mkdirs(); 建立多级目录
删除目录
f.delete(); 只能删除空目录或文件
1 使用递归实现删除(非空目录)
package j09;
import java.io.File;
public class Filetext {
public static void shanchu(File file) {
if (file.isDirectory()) {
File sd[] = file.listFiles();
for (File files : sd) {
shanchu(files);
}file.delete();
} else {
file.delete();
}
}
public static void main(String[] args) {
File f = new File("D:\\ads");
shanchu(f);
}
}
2 实现统计一个目录中,各种文件的个数。
package j09;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
public class Tongji {
public static void main(String[] args) {
File f = new File("E:\\java\\");
tongji(f);
System.out.println(dsa.size());
System.out.println(dsa.toString());
dsa.forEach((x, c) -> {
System.out.printf("%s=%d \n", x, c);
});
}
static int num = 0;
static Map dsa = new HashMap();
public static void tongji(File file) {
File fs[] = file.listFiles();
if (file.isDirectory()) {
for (File fa : fs) {
tongji(fa);
}
} else {
String sd = file.getName();
String ds;
if (sd.lastIndexOf(".") != -1) {
ds = sd.substring(sd.lastIndexOf("."));
} else {
ds = "未知";
}
if (dsa.containsKey(ds)) {
dsa.put(ds, Integer.parseInt(dsa.get(ds).toString()) + 1);
} else {
dsa.put(ds, 1);
}
}
}
}
输入流
输出流
字节流 InputStream OutputStream
FileInputStream FileOutputStream
实现文件复制
字符流 Writer Reader
FileWriter FileReader
BufferedReader BufferedWriter
ascii码文件,本质就是文本文件,里边保存的是字符串
实现文件的拷贝功能(FileInputStream FileOutputStream)小型文件
package j09;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Filec {
public static void main(String[] args) throws IOException {
File fi=new File("asd.txt");
FileInputStream fis=new FileInputStream(fi);
FileOutputStream fio=new FileOutputStream("add.txt");
byte[] buf=new byte[fis.available()];
fis.read(buf);
fio.write(buf);
fis.close();
fio.close();
System.out.println(fi.length());
}
}
2 要求实现判断两个文件是不是一个文件。
package j09;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Random;
public class Fileyi {
public static void main(String[] args) throws IOException {
File file = new File("D:\\a.iso");
File fil = new File("D:\\b.iso");
FileInputStream fi = new FileInputStream(file);
FileInputStream fio = new FileInputStream(fil);
byte[] buf1 = new byte[100000];
byte[] buf2 = new byte[100000];
String str="";
if (file.length() == fil.length()) {
Random rand = new Random();
for (int i = 0; i < 10; i++) {
int a = rand.nextInt((int) (file.length() + 1));
fio.read(buf2);
fi.read(buf1);
String sd=new String(buf1);
System.out.println(buf1);
System.out.println(buf2);
String sds=new String(buf2);
// if(new String(buf2).contains(new String(buf1))) {
if(sd.contains(sds)) {
str="相同";
}else {str="不同";}
}
}else {
str="不同";
}
System.out.println(str);
}
}

浙公网安备 33010602011771号