File 类小结

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();

	}

猜你喜欢

转载自blog.csdn.net/qq_38261174/article/details/81193664