1、File类 文件的创建、删除、重命名
File file = new File("file.txt");
//是否存在
if (file.exists()) {
//文件删除
file.delete();
//文件重命名
File file2 = new File("new file.txt");
file.renameTo(file2);
//文件
System.out.println(file.isFile());
//文件夹
System.out.println(file.isDirectory());
}else {
System.out.println("文件不存在");
//创建文件
try {
file.createNewFile();
System.out.println("文件创建成功");
} catch (IOException e) {
e.printStackTrace();
System.out.println("文件无法创建");
}
}
}
2、文件夹的创建、删除、重命名
import java.io.File;
import com.sun.org.apache.bcel.internal.classfile.Field;
public class HelloFolder {
public static void main(String[] args) {
File floder = new File("my new floder");
if (floder.mkdir()) {
System.out.println("文件夹创建成功");
}else {
if (floder.mkdir()) {
System.out.println("文件夹已经存在无需再创建");
}else {
System.out.println("文件夹创建失败");
}
}
// File floder = new File("my new floder/one/two/three");
// if (floder.mkdirs()) {
// System.out.println("文件夹创建成功");
// }else {
// if (floder.mkdir()) {
// System.out.println("文件夹已经存在无需再创建");
// }else {
// System.out.println("文件夹创建失败");
// }
// }
//文件夹的重命名
File folder2 = new File("my new floder-new");
if (floder.renameTo(folder2)) {
System.out.println("重命名完成");
}else {
System.out.println("重命名失败");
}
//文件夹删除 删除文件夹 文件夹本身必须是空的文件夹 否则不能删除成功
if (floder.delete()) {
System.out.println("文件夹删除");
}
}
}
3、文件属性的读取
import java.io.File;
public class ReadFileProperty {
public static void main(String[] args) {
File file = new File("test.txt");
//判断文件是否存在
System.out.println("判断文件是否存在"+file.exists());
//获取文件名称
System.out.println("获取文件名称"+file.getName());
//获取文件路径
System.out.println("获取文件路径"+file.getPath());
//获取文件绝对路径
System.out.println("获取文件绝对路径"+file.getAbsolutePath());
//获取文件父级路径
System.out.println("获取文件父级路径"+new File(file.getAbsolutePath()).getParent());
//获取文件大小
System.out.println("获取文件大小"+file.length()+"byte");
//判断文件是否被隐藏
System.out.println("判断文件是否被隐藏"+file.isHidden());
//判断文件是否可读
System.out.println("判断文件是否可读"+file.canRead());
//判断文件是否可写
System.out.println("判断文件是否可写"+file.canWrite());
//判断文件是否为文件夹
System.out.println("判断文件是否为文件夹"+file.isDirectory());
}
}
- 打印结果
判断文件是否存在true
获取文件名称test.txt
获取文件路径test.txt
获取文件绝对路径/Users/yc_l/Documents/workspace/java/ReadFileProperty/test.txt
获取文件父级路径/Users/yc_l/Documents/workspace/java/ReadFileProperty
获取文件大小16byte
判断文件是否被隐藏false
判断文件是否可读true
判断文件是否可写true
判断文件是否为文件夹false
4、文件属性设置
import java.io.File;
public class SetFileProperty {
public static void main(String[] args) {
File file = new File("test.txt");
//将文件设置为可读
file.setReadable(true);
//将文件设置为可写
file.setWritable(true);
//将文件设置为只读
file.setReadOnly();
}
}
5、遍历文件夹
package com.lhf.java;
import java.io.File;
public class FileIterator {
public static void main(String[] args) {
iteratorFiles(new File("../FileIterator"), 1);
}
public static void iteratorFiles(File dir,int tab) {
if (dir.isDirectory()) {
File next[] = dir.listFiles();
for (int i = 0; i < next.length; i++) {
File file = next[i];
for (int j = 0; j < tab; j++) {
System.out.print("|---");
}
System.out.println(file.getName());
if (file.isDirectory()) {
iteratorFiles(file, tab+1);
}
}
}
}
}
- 打印结果
|---.classpath
|---.DS_Store
|---.project
|---.settings
|---|---org.eclipse.jdt.core.prefs
|---bin
|---|---.DS_Store
|---|---com
|---|---|---.DS_Store
|---|---|---lhf
|---|---|---|---.DS_Store
|---|---|---|---java
|---|---|---|---|---file
|---|---|---|---|---|---package-info.class
|---|---|---|---|---FileIterator.class
|---src
|---|---com
|---|---|---lhf
|---|---|---|---java
|---|---|---|---|---file
|---|---|---|---|---|---package-info.java
|---|---|---|---|---FileIterator.java
6、文件的简单读写
1.读取内容
- 代码如下
package com.lhf.file;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
public class FileReadAndWrite {
public static void main(String[] args){
//读取文件内容
File file = new File("test.txt");
if (file.exists()) {
System.out.println("文件存在");
try {
FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader br = new BufferedReader(isr);
String contentLine;
while ( (contentLine = br.readLine()) != null) {
System.out.println(contentLine);
}
br.close();
isr.close();
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
- 输出结果
文件存在
对酒当歌, 人生几何!
譬如朝露, 去日苦多。
慨当以慷, 忧思难忘。
何以解忧? 唯有杜康。
青青子衿, 悠悠我心。
但为君故, 沉吟至今。
呦呦鹿鸣, 食野之苹。
我有嘉宾, 鼓瑟吹笙。
明明如月, 何时可掇?
忧从中来, 不可断绝。
越陌度阡, 枉用相存。
契阔谈, 心念旧恩。
月明星稀, 乌鹊南飞。
绕树三匝, 何枝可依?
山不厌高, 海不厌深。
周公吐哺, 天下归心。
2.写入内容
- 代码如下
package com.lhf.file;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
public class FileReadAndWrite {
public static void main(String[] args){
//写入内容
File newFile = new File("newtest.txt");
try {
FileOutputStream fos = new FileOutputStream(newFile);
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
BufferedWriter bw = new BufferedWriter(osw);
bw.write("对酒当歌, 人生几何!");
bw.write("譬如朝露, 去日苦多。");
bw.write("慨当以慷, 忧思难忘。");
bw.close();
osw.close();
fos.close();
System.out.println("写入成功");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}