社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
Java中的File类给我们提供了文件操作的基础,本博客讲解的内容是工程训练任务2.1中的一些程序,对于写入操作在上一篇博客中已经有所涉及,故本博客只展示任务挑战中的三个小程序。
1)任务内容
编写一个Java程序对文本文件按行进行读取,每读取一行后显示此行,并统计此行有多少字节,有多少字符并显示统计结果,最后显示总的行数。
2)任务代码
代码每一行均有注释,代码如下:
import java.io.BufferedReader;//导入java.io包下的BufferedReader类
import java.io.FileReader;//导入java.io包下的FileReader类
import java.io.IOException;//导入java.io包下的IOException类
public class TEST1{//类名
public static void main(String[] args){//程序主入口函数,带命令行参数
try {//try代码块,当发生异常时会转到catch代码块中
//读取指定的文件
BufferedReader in = new BufferedReader(new FileReader("D:\CSDN博客展示\文件存放处\Test1.txt"));
String str=null;//定义一个字符串类型变量str
int i=0;//定义一个整型变量
while ((str = in.readLine())!= null) {//readLine()方法, 用于读取一行,只要读取内容不为空就一直执行
i++;
byte[] bytes=str.getBytes();//获得字节数
System.out.print("第"+i+"行:"+str+" ");//输出从每一行读取的内容
System.out.println("第"+i+"行有"+bytes.length+"个字节"+str.length()+"个字符");//输出每一行的字符和字节个数
}
System.out.println("该文本共有"+i+"行");//输出总的行数
} catch (IOException e) {//当try代码块有异常时转到catch代码块
e.printStackTrace();//printStackTrace()方法是打印异常信息在程序中出错的位置及原因
}
}
}
3)运行结果
1)任务内容
编写一个Java程序通过二进制流的方式实现对任何类型文件的复制操作。
我的思路如下:首先文件Test2.txt在路径“D:CSDN博客展示文件存放处”中,然后通过程序将该文件复制到路径“D:CSDN博客展示文件复制处”里面。
2)任务代码
代码每一行均有注释,代码如下:
import java.io.File;//导入java.io包下的File类
import java.io.FileInputStream;//导入java.io包下的FileInputStream类
import java.io.FileOutputStream;//导入java.io包下的FileOutputStream类
import java.io.IOException;//导入java.io包下的IOException类
public class TEST2{//类名
public static void main(String[] args) throws IOException{//程序主入口函数,带命令行参数
//封装好需要复制的文件原路径
FileInputStream fis=new FileInputStream("D:\CSDN博客展示\文件存放处\Test2.txt");
//将文件复制到指定路径下
FileOutputStream fos=new FileOutputStream("D:\CSDN博客展示\文件复制处\Test2.txt");
byte[] lsy=new byte[fis.available()];//定义字节数组用来当作缓冲区
fis.read(lsy);//将文件以字节流形式读入缓冲区字节数组
fos.write(lsy);//从缓冲区字节数组中以字节流形式取出
fos.close();//关闭读取流
fis.close();//关闭写入流
File file=new File("D:\CSDN博客展示\文件复制处\Test2.txt");//创建文件对象
if(file.exists()){//if语句的条件,调用exists方法判断文件是否存在
System.out.println("文件成功复制到指定路径下");//若文件存在,则输出文件存在
}
else{//否则
System.out.println("文件复制失败");//输出文件不存在
}
}
}
3)运行结果
1)任务内容
编写一个Java程序通过二进制流的方式实现对任何类型文件的移动操作。
我的思路如下:首先文件Test3.txt在路径“D:CSDN博客展示文件存放处”中,然后通过程序将该文件移动到路径“D:CSDN博客展示文件移动处”里面。
2)任务代码
代码每一行均有注释,代码如下:
import java.io.File;//导入java.io包下的File类
import java.io.FileInputStream;//导入java.io包下的FileInputStream类
import java.io.FileOutputStream;//导入java.io包下的FileOutputStream类
import java.io.IOException;//导入java.io包下的IOException类
public class TEST3{//类名
public static void main(String[] args) throws IOException{//程序主入口函数,带命令行参数
//封装好需要移动的文件源路径
File file1=new File("D:\CSDN博客展示\文件存放处\Test3.txt");
FileInputStream fis=new FileInputStream(file1);
//将文件移动到指定路径下
FileOutputStream fos=new FileOutputStream("D:\CSDN博客展示\文件移动处\Test3.txt");
byte[] lsy=new byte[fis.available()];//定义字节数组用来当作缓冲区
fis.read(lsy);//将文件以字节流形式读入缓冲区字节数组
fos.write(lsy);//从缓冲区字节数组中以字节流形式取出
fos.close();//关闭读取流
fis.close();//关闭写入流
file1.delete();//删除源文件
File file2=new File("D:\CSDN博客展示\文件移动处\Test3.txt");//创建文件对象
if(file2.exists()){//if语句的条件,调用exists方法判断文件是否存在
System.out.println("文件成功移动到指定路径下");//若文件存在,则输出文件存在
}
else{//否则
System.out.println("文件移动失败");//输出文件不存在
}
}
}
3)运行结果
本博客分享了文件的读取、复制和移动的方法,并且复制和移动不仅仅局限于txt文件,大家可以使用其他类型的文件进行实验,由于这些程序是我在四月份做工程训练任务2.1时所做,故会有一些不足之处,请多多包涵。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!