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<FileStat> {
    //创建一个文件对象，用来方便后续操作这个文件，获取文件名、字符数，行数
    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 );
    }
}
