一、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();// 文件操作的最后一定要关闭 } }
时间: 2024-10-11 00:37:15