JAVA文本操作处理
本人在看到任务以后,学习了JAVA文本操作的知识后,才进行上手联系。
这次任务也给予了我更多去学习的能力和自己思考的能力。
任务
- 完成一个java application应用程序,判别指定路径下指定文件名的文件是否存在。
- 如果指定文件存在,读取并分别显示其修改时间和文件大小等属性。
- 以文本方式打开某一指定路径指定文件名的文本文件,读取其内容并显示。
- 以文本方式向某一指定路径指定文件名的文本文件写入指定文本内容,例如写入自己的姓名和学号。
准备工作
我在F:\CloudMusic 中创建了一个txt文本 quyuquan1996
里面装着一首《你要的全都拿走》胡彦斌 的歌词
程序
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class text1 {
public static void main(String args[]){
File file=new File("F:\\CloudMusic\\quyuquan1996.txt");
System.out.println("该文件是否存在?"+file.exists());
System.out.println("文件名:" + file.getName());
System.out.println("该文件有"+file.length()+"字节");
System.out.println("该文件可读吗?"+file.canRead());
System.out.println("该文件的路径是:"+file.getAbsolutePath());
System.out.println("该文件路径:"+file.getPath());
System.out.println("该文件上次修改的时间是:"+file.lastModified());
String filePath = "F:\\CloudMusic\\quyuquan1996.txt";
String content = "\nquyuquan\n20182204074\n";
try{
BufferedReader in = new BufferedReader(new FileReader("F:\\CloudMusic\\quyuquan1996.txt"));
String str=null;//定义一个字符串类型空变量str
while ((str = in.readLine())!= null) {//readLine()方法, 用于读取一行,只要读取内容不为空就一直执行
System.out.println(str);//输出从每一行读取的内容
}
}
catch(IOException e){
e.printStackTrace();//printStackTrace()方法是打印异常信息在程序中出错的位置及原因
}
FileWriter writer = null;
try {
writer = new FileWriter(new File(filePath), true);
writer.write(content);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (writer != null) {
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
结果
中间歌词省略 未截图
讲解
public class text1 {
public static void main(String args[]){
File file=new File("F:\\CloudMusic\\quyuquan1996.txt");
System.out.println("该文件是否存在?"+file.exists());
System.out.println("文件名:" + file.getName());
System.out.println("该文件有"+file.length()+"字节");
System.out.println("该文件可读吗?"+file.canRead());
System.out.println("该文件的路径是:"+file.getAbsolutePath());
System.out.println("该文件路径:"+file.getPath());
System.out.println("该文件上次修改的时间是:"+file.lastModified());
这都是完成第一,二个任务。
在java中,提供了对文件及目录进行操作的File类,使用该类的方法可以很方便地获取文件相关的信息,具体如下:
boolean exists(): 测试此抽象路径名表示的文件或目录是否存在。
Sting getName() : 返回由此抽象路径名表示的文件或目录的名称。
String getParent() : 返回此抽象路径名的父路径名的路径名字符串,如果此路径名没有指定父目录,则返回null。
String getAbsolutePath() : 返回抽象路径名的绝对路径名字符串。
String getPath() : 将此抽象路径名转换为一个路径名字符串。
boolean isAbsolute() : 测试此抽象路径名是否为绝对路径名。
boolean isDirectory() : 测试此抽象路径名表示的文件是否是一个目录。
boolean isFile() : 测试此抽象路径名表示的文件是否是一个标准文件。
boolean isHidden() : 测试此抽象路径名指定的文件是否是一个隐藏文件。
long length() : 返回有此抽象路径名表示的文件的长度,以字节为单位。
long lastModified() : 返回此抽象路径名表示的文件最后一次被修改的时间。
boolean canRead() : 测试应用程序是否可以读取此抽象路径名表示的文件。
boolean canWrite() : 测试应用程序是否可以修改此抽象路径名表示的文件。
链接在这里
String filePath = "F:\\CloudMusic\\quyuquan1996.txt";
String content = "\nquyuquan\n20182204074\n";
try{
BufferedReader in = new BufferedReader(new FileReader("F:\\CloudMusic\\quyuquan1996.txt"));
String str=null;//定义一个字符串类型空变量str
while ((str = in.readLine())!= null) {//readLine()方法, 用于读取一行,只要读取内容不为空就一直执行
System.out.println(str);//输出从每一行读取的内容
}
}
catch(IOException e){
e.printStackTrace();//printStackTrace()方法是打印异常信息在程序中出错的位置及原因
}
此段,是将文本中的所有字符串进行输出。
参考
FileWriter writer = null;
try {
writer = new FileWriter(new File(filePath), true);
writer.write(content);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (writer != null) {
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
此段是先将 文本地址设为filePath 然后将本人的学号和姓名以字符串形式表示为content 然后放入quyuquan1996 文本中。