package J20250804.demo01; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.util.concurrent.Callable; /** * @author WanJl * @version 1.0 * @title FileStatTask * @description * @create 2025/8/4 */ public class FileStatTask implements Callable { //创建一个文件对象,用来方便后续操作这个文件,获取文件名、字符数,行数 private File file; public FileStatTask(File file) { this.file = file; } @Override public FileStat call() throws Exception { //字符数量 int charCount=0; //行数 int lineCont=0; //缓冲流-里面包着字符输入流 BufferedReader br=new BufferedReader(new FileReader(file)); //每一行的字符串 String line; while((line=br.readLine())!=null){ //行数++ lineCont++; //每行的字符数量累计到总数 charCount+=line.length(); //每行的换行符也算一个字符 charCount++; } return new FileStat(file.getName(),charCount,lineCont ); } }