Java读写文件数据

Java读写文件数据

输入输出流是对计算机文件进行操作的java类库。【读写文件数据】

1.计算机中的文件是由几部分组成

  1. 文件的基本属性。【文件的名称,后缀名,修改日期,类型…】【java.io.File类】
  2. 文件中的数据。【输入输出流】

2.对文件的基本属性进行操作

在java中我们通过java.io.File类实现对文件的基本属性进行操作。

3. java.io.File类

定义:

public class File
extends Object
implements Serializable, ComparableFile

既然是一个类,那么在使用的时候就需要创建对象。

构造方法摘要
File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
File(String parent, String child) 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
package com.Kweilin_Fang.test1;
import java.io.File;
public class FileTest1 {
	public static void main(String[] args) {
		//File类--java.io.File
		//帮助我们操作文件的基本属性
		/**
		 * 构造方法
		 */
		//1.File(String pathname);通过String类型提供一个文件路径创建一个新File、对象
		String filepath1="G:\\testfile\\mytest1.txt";
		File file=new File(filepath1);
		
		//2.File(File parent,String child);通过File对象构建文件位置,String类构建一个文件名称
		String path2="G:\\testfile";
		File filepath=new File(path2);
		String filename1="mytest2.text";
		File file2=new File(filepath,filename1);
		
		//3.File(String parent, String child) 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File实例
		String parent="G:\\testfile";
		String child="mytest3.txt";
		File file3=new File(parent,child);
	}
}

上面的实例中指定文件路径的时候

  1. 路径分割符【\】,window系统下的路径分隔符需要转义
  2. windows系统的路径分隔符【\】与Unix系统的路径分隔符【/】不一样.

我们需要一个文件的路径分隔符,既可以兼容windows系统,也可以在Unix系统中使用。

字段摘要
static StringpathSeparator 与系统有关的路径分隔符,为了方便,它被表示为一个字符串。
static Stringseparator 与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。

实例方法

booleancreateNewFile() 创建新文件
booleanexists() 判断文件或文件夹是否存在
booleandelete() 删除文件或文件夹。删除文件夹的时候一定要保证文件夹为空,非空文件夹是无法删除的
booleancanRead() 判断文件是否可读。
booleancanWrite() 判断文件是否可写。
booleanisHidden() 判断文件是否是一个隐藏文件。
booleanisFile() 判断该对像是否为一个文件。【文件必须存在】
StringgetAbsolutePath() 返回绝对路径名字符串。
StringgetName() 返回文件或文件夹的名称。
StringgetParent()得到文件的保存目录。
StringgetPath() 将此抽象路径名转换为一个路径名字符串。
longlastModified() 返回此抽象路径名表示的文件最后一次被修改的时间【毫秒数】。
longlength() 返回文件的长度【字节】。1kb=1024字节 1mb=1024kb 1gb=1024mb
booleanmkdirs() 创建一个文件夹
booleanisDirectory() 判断该对像是否为一个文件夹。【文件夹必须存在】
String[]list()返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录的名称。
File[]listFiles()返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
package com.Kweilin_Fang.test1;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class FileTest2 {
	public static void main(String[] args) {
		//文件类中常用得实例方法
		String path="G:"+File.separator+"testfile"+File.separator+"mytest.txt";
		File file=new File(path);
		//创建文件
//		try {
//			boolean flag1=file.createNewFile();
//			if(flag1) {
//				System.out.println("文件创建成功");
//			}else {
//				System.out.println("文件创建失败");
//			}
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
		//判断文件是否存在
		boolean flag=file.exists();
		if (flag) {
			System.out.println("文件已经存在");
		} else {
			System.out.println("文件不存在");
		}
		//删除文件
//		boolean flag2=file.delete();
//		if (flag2) {
//			System.out.println("文件删除成功");
//		} else {
//			System.out.println("文件删除失败");
//		}
		
		//文件操作
		//判断文件是否打开
		boolean flag3=file.canRead();
		if (flag3) {
			System.out.println("文件可以查看");
		} else {
			System.out.println("文件不可读");
		}
		//判断文件是否可写
		boolean flag4=file.canWrite();
		if (flag4) {
			System.out.println("可");
		} else {
			System.out.println("不可");
		}
		
		//判断文件是否是隐藏文件
		boolean flag5=file.isHidden();
		if (flag5) {
			System.out.println("yes");
		} else {
			System.out.println("no");
		}
		//得到文件的绝对路径
		System.out.println("文件的绝对路径=="+file.getAbsolutePath());
		//得到文件名称
		System.out.println("文件名称=="+file.getName());
		//文件位置
		System.out.println("文件位置=="+file.getParent());
		//文件修改日期
		long hs=file.lastModified();
		Date date=new Date(hs);
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM--dd HH:mm:ss E");
		String time=sdf.format(date);
		System.out.println("文件最后修改日期=="+time);
		//文件大小 字节长度
		System.out.println("文件大小=="+file.length()+"字节");
		
		//文件夹操作方法
		//创建一个文件夹对象
		String path1="G:"+File.separator+"testFile"+File.separator+"java";
		File dirFile=new File(path1);
		//boolean flagA=dirFile.mkdir();
//		if (flagA) {
//			System.out.println("文件夹创建成功");
//		} else {
//			System.out.println("文件夹创建失败");
//		}
		//删除文件夹
//		boolean flagB=dirFile.delete();
//		if (flagB) {
//			System.out.println("删除文件夹创建成功");
//		} else {
//			System.out.println("删除文件夹创建失败");
//		}
		//判断文件夹是否存在
		if (dirFile.exists()) {
			//删除文件夹
			if (dirFile.delete()) {
				System.out.println("删除成功");
			}else {
				System.out.println("删除失败");
			}
		} else {
			//创建文件夹
			if(dirFile.mkdirs()) {
				System.out.println("文件夹创建成功");
			} else {
				System.out.println("文件夹创建失败");
			}			
		}
		
		//判断文件对象是否为文件夹对象
		boolean flagC=dirFile.isDirectory();
		if (flagC) {
			System.out.println("是一个文件夹");
		} else {
			System.out.println("不是一个文件夹");
		}
		
		//判断文件路径是否是一个文件
		boolean flagD=dirFile.isFile();
		if (flagD) {
			System.out.println("是一个文件");
		} else {
			System.out.println("不是一个文件");
		}
		
		//特殊点操作方法
		//得到文件夹中的所有文件及名称
		//1.创建一个保存文件夹的文件对象
//		String pathall="G:"+File.separator+"网星java学习";
//		File dirs=new File(pathall);
//		String names[]=dirs.list();
//		for (String str : names) {
//			System.out.println(str);
//		}
		
		//得到文件夹中的所有文件的对象
		//1.得到文件对象,名称 大小 类型....
		
		String pathalls="G:"+File.separator+"文件位置";
		File dirss=new File(pathalls);
		File files[]=dirss.listFiles();
		SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd  E   HH:mm:ss");
		for (File file2 : files) {
			//得到文件/夹名称
			String filename=file2.getName();
			//修改时间
			long hss=file2.lastModified();
			Date dates=new Date(hss);
			String xtime=sdf1.format(dates);
			//定义保存文件夹的字符串
			String filetype="";
			if (file2.isDirectory()) {
				filetype="文件夹";
			} else {
				//得到文件的后缀名
				String hzname=filename.substring(filename.lastIndexOf("."));
				if (hzname.equals(".rar")) {
					filetype="rar压缩文件";
				} 
				if(hzname.equals(".zip")) {
					filetype="zip压缩文件";
				}
				if(hzname.equals(".exe")) {
					filetype="可执行文件";
				}
			}
			//得到文件大小
			String len="";
			if (file2.isDirectory()) {
				len="";
			} else {
				//得到文件大小
				long size=file2.length();
				len=String.valueOf(size/1024/1024)+"MB";
			}
			StringBuilder sBuilder=new StringBuilder();
			sBuilder.append(filename+"\t");
			sBuilder.append(xtime+"\t");
			sBuilder.append(filetype+"\t"   +"  "); 
			sBuilder.append(len+"\t");
			System.out.println(sBuilder.toString());
		}
	} 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值