java学习之文件基本操作

一、File类

文件的创建

package file;

import java.io.File;
import java.io.IOException;

public class CreateFile {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
      File file=new File("C:\\Users\\Public\\Desktop\\demo.txt"); 
      try{
    	file.createNewFile();  
      }catch(IOException e){
    	  e.printStackTrace();
      }
	}
}
文件的删除
package file;

import java.io.File;

public class DeleteFile {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		File file = new File("C:\\Users\\Public\\Desktop\\demo.txt");
		file.delete();
	}
}
文件的查找

package file;

import java.io.File;

public class ExistFile {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		File file = new File("C:\\Users\\Public\\Desktop\\demo.txt");
		if(file.exists()){
			System.out.println("文件存在!");
		}else{
			System.out.println("文件不存在!");
		}
	}
}
路径的判断
package file;

import java.io.File;

public class JudgeFile {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		File file1=new File("C:\\Users\\Public\\Desktop\\demo.txt");
		File file2=new File("C:\\Users\\Public\\Desktop");
		System.out.println(file1.isFile());
		System.out.println(file2.isDirectory());
	}
}

目录输出

直接文件输出

package file;

import java.io.File;

public class FilePath {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		File file=new File("C:\\Users\\Public\\Desktop");
		String path[]=file.list();
		int len=path.length;
		for(int i=0;i<len;i++){
			System.out.println(path[i]);
		}
	}
}

路径输出

package file;

import java.io.File;

public class FilePath {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		File file=new File("C:\\Users\\Public\\Desktop");
		File[] path=file.listFiles();//--------------------这里发生了改变,以File对象为数组元素
		int len=path.length;
		for(int i=0;i<len;i++){
			System.out.println(path[i]);
		}
	}
}
建立文件夹

package file;

import java.io.File;
public class CreateDirect {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		File file=new File("C:\\Users\\Public\\Desktop\\demo"); 
		file.mkdir();//创建demo文件夹
		}
	}

}


在建立一个文件的同时在文件夹内建立文件

package file;

import java.io.File;
import java.io.IOException;

public class CreateDirect {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		File file=new File("C:\\Users\\Public\\Desktop\\javatest\\demo.txt"); 
		file.getParentFile().mkdir();//创建d\\javatest文件夹
		try {
			file.createNewFile();
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
	}

}


注意:因为linux与windows的文件层次分隔符分别为/和\,所以为了实现代码的跨平台,本文中的\\皆可改为File.separator.

问题:列出某个目录下的全部文件(包括子目录中的子文件)

import java.io.File;

public class ListDirectoryDemo {

	public static void main(String[] args) {
		File file = new File("d:" + File.separator);
		list(file);
	}

	public static void list(File file) {
		if (file.isDirectory()) {
			File lists[] = file.listFiles();
			if (lists != null) {
				for (int i = 0; i < lists.length; i++) {
					list(lists[i]);// 列出内容
				}
			}
		}
		System.out.println(file);
	}
}

二、RandomAccessFile

构造方法:public RandomAccessFile(File file,String mode)throws FileNotFoundException

写操作:

import java.io.File;
import java.io.RandomAccessFile;

public class RandomWrite {
	public static void main(String[] args) throws Exception {// 所有异常抛出
		File file = new File("C:\\Users\\Public\\Desktop\\demo.txt");// 指定要操作的文件
		RandomAccessFile raf = new RandomAccessFile(file, "rw");// 以读写的形式进行操作
		// 写入第一条数据
		String name = "zhangsan";// 表示姓名
		int age = 20; // 表示年龄
		raf.writeBytes(name); // 以字节的方式将字符串写入
		raf.writeInt(age); // 写入整型数据
		// 写入第二条数据
		name = "lisi    ";// 表示姓名
		age = 19; // 表示年龄
		raf.writeBytes(name); // 以字节的方式将字符串写入
		raf.writeInt(age); // 写入整型数据
		// 写入第三条数据
		name = "wangwu  ";// 表示姓名
		age = 21; // 表示年龄
		raf.writeBytes(name); // 以字节的方式将字符串写入
		raf.writeInt(age); // 写入整型数据
		raf.close();// 文件操作的最后一定要关闭
	}

}
读操作:
import java.io.File;
import java.io.RandomAccessFile;

public class RandomRead {
	public static void main(String[] args) throws Exception {// 所有异常抛出
		File file = new File("C:\\Users\\Public\\Desktop\\demo.txt");// 指定要操作的文件
		RandomAccessFile raf = new RandomAccessFile(file, "r");// 以读的形式进行操作
		byte b[] = null;// 定义字节数组
		String name = null;
		int age = 0;
		b = new byte[8];
		raf.skipBytes(12); // 跨过第一个人的信息
		System.out.println("第二个人的信息:");
		for (int i = 0; i < 8; i++) {
			b[i] = raf.readByte(); // 读取字节
		}
		age = raf.readInt();// 读取数字
		System.out.println("\t|- 姓名:" + new String(b));
		System.out.println("\t|- 年龄:" + age);
		raf.seek(0);// 回到开始位置
		System.out.println("第一个人的信息:");
		for (int i = 0; i < 8; i++) {
			b[i] = raf.readByte(); // 读取字节
		}
		age = raf.readInt();// 读取数字
		System.out.println("\t|- 姓名:" + new String(b));
		System.out.println("\t|- 年龄:" + age);
		raf.skipBytes(12); // 跨过第二个人的信息
		System.out.println("第三个人的信息:");
		for (int i = 0; i < 8; i++) {
			b[i] = raf.readByte(); // 读取字节
		}
		age = raf.readInt();// 读取数字
		System.out.println("\t|- 姓名:" + new String(b));
		System.out.println("\t|- 年龄:" + age);
		raf.close();// 文件操作的最后一定要关闭
	}
}


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。