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();// 文件操作的最后一定要关闭
	}
}

时间: 2024-10-11 00:37:15

java学习之文件基本操作的相关文章

java RandomAccessFile类文件基本操作

RandomAccessFile类是java中仿C的文件操作方法,下面通过实例演示RandomAccessFile类对文件的基本操作,深入了解请查看Java API文档.(注:RandomAccessFile类大多不被采用) 上代码 import java.io.*; public class AccessFileDemo { public static void main(String[] args) { Student stu1=new Student("Zhang San",10

Java学习-018-EXCEL 文件写入实例源代码

众所周知,EXCEL 也是软件测试开发过程中,常用的数据文件导入导出时的类型文件之一,此文主要讲述如何通过 EXCEL 文件中 Sheet 的索引(index)或者 Sheet 名称获取文件中对应 Sheet 页中的数据.敬请各位小主参阅,若有不足之处,敬请大神指正,不胜感激! 不多言,小二上码咯... 通过 sheet_name 写入 EXCEL 数据源代码如下所示,敬请参阅! 1 /** 2 * @function 文件写入: EXCEL文件 3 * 4 * @author Aaron.ff

Java学习-017-EXCEL 文件读取实例源代码

众所周知,EXCEL 也是软件测试开发过程中,常用的数据文件导入导出时的类型文件之一,此文主要讲述如何通过 EXCEL 文件中 Sheet 的索引(index)或者 Sheet 名称获取文件中对应 Sheet 页中的数据.敬请各位小主参阅,若有不足之处,敬请大神指正,不胜感激! 不多言,小二上码咯... 通过 sheet_index 读取 EXCEL 数据源代码如下所示,敬请参阅! 1 /** 2 * @function 文件读取: EXCEL文件 3 * @description 通过EXCE

Java学习-022-Properties 文件数据写入

Properties 配置文件写入主要通过 Properties.setProperty 和 Properties.store 两个方法,此文以一个简单的 properties 文件写入源码做示例. 小二上码...若有不足之处,敬请大神指正,不胜感激! Properties 文件写入源码如下所示: 1 /** 2 * @function write data to text file by Properties 3 * 4 * @author Aaron.ffp 5 * @version V1.

Java学习-019-Properties 文件读取实例源代码

在这几天的学习过程中,有开发的朋友告知我,每个编程语言基本都有相应的配置文件支持类,像 Python 编程语言中支持的 ini 文件及其对应的配置文件读取类 ConfigParse,通过这个类,用户可以方便的修改 ini 配置文件.在 Java 中对应的配置文件为 properties 格式的文本文件,其对应的内容格式为 “键=值” ,文本注释信息可以用 “#” 注释.同时 Java 语言中对应的类为 Properties(java.util.Properties),即为读取 propertie

java学习【文件IO】

博客:http://blog.csdn.net/muyang_ren 1.快速读取一个文本文件,将文件的内容输出到一个新文件: package lhy.java_day3.oop; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; impor

Java学习之文件及异常处理

import java.io.File; /* * 目的:从根目录遍历,找出该盘下所有以.avi以及.rmvb..mp4结尾的文件 * * 1.遍历目录 * 是文件: * 判断: * 是:.avi或者.rmvb或者.mp4结尾的文件,输出文件地址以及文件名 * 不是:忽略 * 是目录:重复步骤1 * */ public class FileDemo { public static void main(String[] args) { File F = new File("D:\\");

黑马程序员-JAVA学习之文件夹的复制和遍历所有文件

--------android培训.java培训.期待与你交流!-------- JAVA的文件夹复制由于不知道文件夹里面有多少文件夹,所以使用递归方法遍历里面的所有文件夹和文件,如果是文件,则直接复制到目标文件夹,如果是文件夹,则的目标地方创建对应的同名文件夹,由于文件有各种各样的类型,比如视频,文档,图片等.所以要用到的主要是字节流对象,而不是用字符流对象,在这里用到的几个类分别是 1.File类,文件和目录路径名的抽象表示形式.(即表示既可以是一个文件,也可以是一个文件夹,是一个有分隔符的

Java学习---下载文件并且对文件编码

import java.io.IOException; import java.net.URLEncoder; import sun.misc.BASE64Encoder; public class FileUtils { /** * 下载文件时,针对不同浏览器,进行附件名的编码 * * @param filename * 下载文件名 * @param agent * 客户端浏览器 * @return 编码后的下载附件名 * @throws IOException */ public stati