java实现对文档判断、写入和读取
一、判断文档是否存在
1.File类概述:它是文件和目录路径名的抽象表示。
●文件和目录是 可以通过File封装成对象。
●对于File而言,其封装的并不是一个真正存在的文件, 仅仅是一个路径名。
2.File构造方法:
File(String pathname):通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。
3.创建一个文件流,给定a.txt文件的绝对路径,如下
File f=new File("D:\\java文档\\文件任务\\itcast\\a.txt");//创建一个文件流,取a.txt文件的绝对路径
4.利用f.exists()&&f.isFile()判断该文件是否存在,且是文件类型,则进行接下来操作。
if (f.exists()&&f.isFile()){//判断语句,如果该文件存在且是文件类型,执行下方操作}
5.获取该文件名和文件大小,其格式分别如下。
f.getName:获取该文件名字。
f.getlength:获取该文件大小。
File f=new File("D:\\java文档\\文件任务\\itcast\\a.txt");//创建一个文件流,取a.txt文件的绝对路径
if (f.exists()&&f.isFile()){//判断语句,如果该文件存在且是文件类型,执行下方操作
System.out.println("存在该文件,该文件名是"+f.getName()+",文件大小是"+f.length());//输出
二、获取文件最终修改时间
1.为获取时间,需要创建一个日历对象,用来对时间进行操作。
2.利用f.lastModified()将获取的文件最终修改时间。
3.再将获取时间转化为时分秒格式。
Calendar cal = Calendar.getInstance();//创建日历对象
String timechange="";//设置最终显示时间格式初始化
long time = f.lastModified();//获取文件最终修改时间
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//转换文件最后修改时间的格式
cal.setTimeInMillis(time);
timechange = formatter.format(cal.getTime());
System.out.println(f.getName()+"最终修改时间是"+timechange);
三、文件输出流实现内容写入文档
1.创建一个文件输出流,并写入文件绝对地址。
格式如下:
FileOutputStream fos=new FileOutputStream(“path”,true);
path是文件绝对路径,true表示在文件后继续写入,不覆盖原文件。
2.利用键盘输入方式,与用户自行输入数据,类型为字符串形式,利用getBytes()转化为系统默认格式写入。
3.数据输入流采用write方式写入数据。
FileOutputStream fos=new FileOutputStream("D:\\java文档\\文件任务\\itcast\\a.txt",true);//创建文件输入流,地址为绝对路径,不覆盖原文件
Scanner sc=new Scanner(System.in);
System.out.println("请输入想添加的内容:");
String str=sc.next();//输入字符串
byte[] byt=str.getBytes();//修改为系统默认格式的数组
System.out.println("您输入的内容是"+str);
System.out.println("=======================最终文档内容================================");
fos.write(byt);//将输入内容写到a.txt文档
四、文件输入流实现文档内容在控制台显示
1.实现创建文件输入流对象,写入绝对地址,格式如下。
FileInputStream fis=new FileInputStream(path);
path:表示需要操作的绝对地址。
2.定义一个数组,用于缓冲作用,方便从txt文件中读取内容到显示台。当读取到该文档所有字节后会返回-1这个数,因此根据-1来判断是否读取完成。
fos.write(byt);//将输入内容写到a.txt文档
FileInputStream fis=new FileInputStream("D:\\java文档\\文件任务\\itcast\\a.txt");
byte[] bytes=new byte[2048];//定义一个数组,用于缓冲作用,方便从txt文件中读取内容到显示台
int len=0;//初始化一个变量
while ((len=fis.read(bytes))!=-1){//当读取到最后一个数,会显示-1。
System.out.println(new String(bytes,0,len));//从索引为0的地方读取到最终长度
}
3.关闭文档。
fis.close();//关闭
4.最终结果图如下