java 文件操作 (2.1)
编辑语言:Java
编译版本: JDK1.3 及以上
任务目标: 学习java文件操作机制
备注:博主完整文档以及code,会在百度云盘连接中共享
一、文件 I/O 输入输出
I /O (Input / Output , 输入输出)流提供一条通道程序,可以使用这条通道把源中的字节序列送到目的地,Java语言定义了许多类专门负责各种方式的输入/输出, 这些类被放在 java.io 包中。其中,所有输入流类都是抽象类 InputStream (字节输入流) 或 抽象类的 Reader (字符输入流) 的子类 ;而所有输出流都是抽象类 OutputStrean (字节输出流)或抽象类 Writer (字符输出流) 的子类。
二、打开文件并读取其属性以及文件内容
获取文件相关属性在前一篇博客中提到,都是调用一些方法即可,FileInputStream 和 FileOutputStream 类用于来操作磁盘文件,提供基本的文件读出和写入能力。new String(byt,0,len) 是全部输出byte数组内的字符串,所以长度为len 。代码中有涵盖了写入和读出详见链接。
String name = file.getName(); //获取文件名称
long length = file.length(); //获取文件长度
long lastModified = file.lastModified(); //获取文件最后修改时间
System.out.println("文件名称:"+ name); //输出信息
System.out.println("文件长度:"+length+"字节"); //默认以字节为单位
System.out.println("文件最后修改时间:"+sdf.format(cal.getTime())); //输出文件的最后更改时间
.......
FileInputStream in =new FileInputStream(file); //创建FileInputStream类对象
byte byt[] = new byte[1024]; //创建byt数组
int len = in.read(byt); //从文件中读取信息
System.out.println("文中读到的信息是:"+new String(byt,0,len)); //一个字节数组byt从0取到len,取出来之后转换成String类
结果如下:
原文件为: 控制台输出为:
三、对文件进行移动
此部分用到了 removeTo 函数,对文件进行了存储位置移动!
try {
if(f.renameTo(new File("E:\\word-move.txt"))) { //renameTo()移动到指定的新位置
System.out.println("移动成功!");
}else {
System.out.println("文件移动失败!");
}
}catch(Exception e) { //异常信息处理
e.printStackTrace();
}
显示结果:
四、文件复制
文件复制部分可参看https://www.cnblogs.com/1996swg/p/7173136.html 该博主的介绍,本认识用直接用FileInputStream和FileOutputStream进行文件的读取和写入,完成复制部分。
in = new FileInputStream(" word.txt "); //创建输入对象
out = new FileOutputStream(" E:\\word-copy.txt "); //创建输出对象
while((data = in.read())!= -1) {
out.write(data); //输出文件写入字符
}
下面是文件和源代码共享,Demo12 还介绍了对文本文件按行进行读取,每读取一行后显示此行,并统计此行有多少字节,有多少字符并显示统计结果,及其总行数。在此与大家共享!
链接:https://pan.baidu.com/s/1kXPfjraRdoVP7-HdpLsoog 密码:orob