IO
File-delete方法删除
public static void main(String[] args) {
//在此目录里建立地址为"dat/use/abc"
File ff = new File("dat/use/abc");
ff.mkdirs();
//删除地址最后的目录
ff.delete();
//删除目录
File f = new File("dat");
if (f.exists()) {
f.delete();
}
System.out.println(f.delete());
}
删除文件 delete() 方法
public static void main(String[] args) {
String f ="D:\\abc\\1.webp";
File file = new File(f);
//是否普通文件
System.out.println(file.isFile());
//是否存在
System.out.println(file.exists());
//返回路径表示文件或目录的名称
System.out.println(file.getName());
//返回字节
System.out.println(file.length());
file.delete();
}
扫描目录list()listFiles()遍历目录
public static void main(String[] args) {
//扫描目录list()listFiles
File dir = new File("E:/下载/imgs");
//查看存在
System.out.println(dir.exists());
//是不是目录
System.out.println(dir.isDirectory());
//遍历目录
/* String[] ds = dir.list();
for(String s : ds) {
System.out.println(s);
}*/
//显示文件和文档
/* File[] fs =dir.listFiles();
for(File f : fs) {
System.out.println(f.getName()+(f.isFile() ? "文件":"目录"));
}*/
String[] ds2 = dir.list((a ,b)->b.endsWith(".png"));
System.out.println(Arrays.toString(ds2));
for (String s : ds2) {
System.out.println(s);
}
File[] fs2 =dir.listFiles(f->f.isFile() && f.getName().endsWith(".java"));
for(File f : fs2){
System.out.println(f.getName());
}
}
使用递归方法,实现删除非空目录
public static void main(String[] args) {
//使用递归方法,实现删除非空目录
String dat = "d:/abc";
File f = new File(dat);
del(new File("d\\abc\\abc"));
if (f.exists() && f.isDirectory()) {
System.out.println(f.delete());
}
}
public static void del(File dir) {
if (dir.isDirectory()) {
File[] fs = dir.listFiles();
for (File f : fs) {
if (f.isDirectory()) {
del(f);
}
f.delete();
}
}
dir.delete();
}
建立一个空文件
public static void main(String[] args)throws IOException {
String str = "d:\\user.txt";
File f =new File(str);
f.createNewFile();
System.out.println(f.isFile());
System.out.println(f.isDirectory());
System.out.println(f.exists());
}
统计项目java文件有多少个,总代码行有多少行
public class CountFiles {
static int num = 0;
static int rows = 0;
public static void main(String[] args) {
String dir = System.getProperty("user.dir");
dir = "D:\\develop\\java\\demo1\\JSE2022";
// dir = "D:\\jdk\\jdk-17\\lib\\src";
//dir = "D:\\download\\jdk-19_windows-x64_bin\\jdk-19\\lib\\src";
//dir = "C:\\Users\\Administrator\\Desktop\\src";
File s = new File(dir);
count(s);
System.out.println("----------------------------");
System.out.println("总共:" + num + "个java文件");
System.out.println("共" + rows + "行");
}
public static void count(File src) {
if (src.isDirectory()) {
File[] fs = src.listFiles();
for (File f : fs) {
if (f.isDirectory()) count(f);
if (f.isFile() && f.getName().endsWith(".java")) {
++num;
rows += getFileRows(f);
//System.out.printf("文件:%s (%d行)。%n",f.getAbsolutePath(),getFileRows(f));
}
}
}
}
public static int getFileRows(File src) {
int rows = 0;
try (FileInputStream fis = new FileInputStream(src)) {
rows = (int) new String(fis.readAllBytes()).lines().count();
} catch (Exception e) {
}
return rows;
}
IO建立文件方式
public static void main(String[] args) throws Exception {
//建立文件 空文件
File f1 = new File("a.txt");
f1.createNewFile();
//建立文件并写入内容
PrintWriter out = new PrintWriter("b.txt");
out.write("yes 是的\n");
out.printf("%tF %<tT%n", System.currentTimeMillis());
out.flush();
//字节流写入文件
FileOutputStream fos = new FileOutputStream("c.txt",true);
for (int i = 0; i < 10; i++) {
fos.write("99 -Hello 文件写入\r\n".getBytes());
}
fos.close();
//字符流
FileWriter fw = new FileWriter("d.txt");
fw.write("hello程序设计");
fw.close();
}
IO字节流字符流读取文本文件
public static void main(String[] args) throws Exception {
File file = new File("c.txt");
//字节流
FileInputStream fis = new FileInputStream(file);
System.out.println(new String(fis.readAllBytes()));
//字符流
FileReader reader = new FileReader(file);
BufferedReader br = new BufferedReader(reader);
while(br.ready()){
System.out.println(br.readLine());
}
}
File类获取文件的信息,更名移动,删除文件
public static void main(String[] args) {
File file = new File("c.txt");
//获取文件信息,更名移动,删除文件
//文件信息
System.out.println(file.isFile());
System.out.println(file.exists());
System.out.println(file.length());
System.out.printf("%tF %<tT%n", file.lastModified());
System.out.println(file.getName());
System.out.println(file.getPath());
System.out.println(file.getAbsolutePath());
//文件目录
String t = file.getAbsolutePath();
System.out.println(t.substring(0, t.lastIndexOf("\\")));
//文件基本名
System.out.println(t.substring(t.lastIndexOf("\\") + 1, t.lastIndexOf(".")));
//文件扩展名
System.out.println(t.substring(t.lastIndexOf(".")));
//File ff = new File("www.txt");
// ff.renameTo(new File("d:/abc/xyz.txt"));
File f3 = new File("d:/xyz.txt");
if (f3.isFile() && f3.exists()) {
f3.delete();
}
}
使用字节流输入输出流,实现文件复制功能
public static void main(String[] args) {
//使用字节流输入输出流,实现文件复制功能
String f1 = "e:/下载/imgs/12.png";
try (
var is = new FileInputStream(f1);
var os = new FileOutputStream("d:/12.png")
){
//os.write(is.readAllBytes());
//int b = 0;
//while((b = is.read())!=-1){
// os.write(b);
//}
//is.transferTo(os);
byte[] buffer = new byte[1024 * 25];
int read;
while((read =is.read(buffer)) >=0){
os.write(buffer, 0, read);
}
} catch(Exception e){
}
}