1.创建一个文件
public static void main(String[] args) throws IOException {
String fileName = "C:/Users/liuyan/Desktop/test/one.txt";
File f=new File(fileName);
try{
//文件已经存在,则不会创建新的文件
f.createNewFile();
}catch (Exception e) {
e.printStackTrace();
}
System.out.println(File.separator); //分隔符\
System.out.println(File.pathSeparator);//路径分隔符;
}
2.删除一个文件 (是文件夹的话好像直接删除不掉)
public static void main(String[] args) throws IOException {
String fileName = "C:/Users/liuyan/Desktop/test/one.txt";
File f = new File(fileName);
if (f.exists()) {
f.delete();
} else {
System.out.println("文件不存在");
}
}
3.创建一个文件夹
一开始只有test文件夹,准备在test文件中创建test/tone/ttwo文件夹,然后不行,不能直接创建2层的文件夹,只能创建test/tone一层
public static void main(String[] args) throws IOException {
String fileName = "C:/Users/liuyan/Desktop/test/tone";
File f = new File(fileName);
f.mkdir();
}
4.列出目录下所有文件.或文件夹下所有文件
public static void main(String[] args) throws IOException {
//String fileName="D:"+File.separator; // 目录
String fileName = "C:/Users/liuyan/Desktop/test";
File f = new File(fileName);
File[] str = f.listFiles(); //str 显示出所有文件(包含隐藏的) 是完整路径 例:C:\Users\liuyan\Desktop\test\three.txt
//String[] strings = f.list(); //strings 只显示出文件名,没有完整路径 例:three.txt
for (int i = 0; i < str.length; i++) {
System.out.println(str[i]);
}
}
5.递归搜索一个文件夹下所有文件(包含文件夹)
public static void main(String[] args) throws IOException {
String fileName = "C:/Users/liuyan/Desktop/test";
File f = new File(fileName); //下级有 文件 也有 文件夹
print(f);
}
public static void print(File f) {
if (f != null) {
if (f.isDirectory()) {
File[] fileArray = f.listFiles();
if (fileArray != null) {
for (int i = 0; i < fileArray.length; i++) {
print(fileArray[i]);// 递归调用
}
} else {
System.out.println(f);
}
}
}
}
6.随机读写文件操作 RandomAccessFile
该对象特点:该对象只能操作文件,所以构造函数接收两种类型的参数:a.字符串文件路径;b.File对象。该对象既可以对文件进行读操作,也能进行写操作,在进行对象实例化时可指定操作模式(r,rw)
注意:该对象在实例化时,如果要操作的文件不存在,会自动创建;如果文件存在,写数据未指定位置,会从头开始写,即覆盖原有的内容。可以用于多线程下载或多个线程同时写数据到文件。
使用RandomAccessFile写入文件
public static void main(String[] args) throws IOException {
String fileName = "C:/Users/liuyan/Desktop/test/one.txt";
File f = new File(fileName);
RandomAccessFile demo = new RandomAccessFile(f, "rw");
demo.seek(10);//如果没有指定,则写入操作默认从0出开始写入
demo.writeChars("asdsad");
demo.writeUTF("你好啊");
demo.close();
}