FileStatTask.java 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package J20250804.demo01;
  2. import java.io.BufferedReader;
  3. import java.io.File;
  4. import java.io.FileReader;
  5. import java.util.concurrent.Callable;
  6. /**
  7. * @author WanJl
  8. * @version 1.0
  9. * @title FileStatTask
  10. * @description
  11. * @create 2025/8/4
  12. */
  13. public class FileStatTask implements Callable<FileStat> {
  14. //创建一个文件对象,用来方便后续操作这个文件,获取文件名、字符数,行数
  15. private File file;
  16. public FileStatTask(File file) {
  17. this.file = file;
  18. }
  19. @Override
  20. public FileStat call() throws Exception {
  21. //字符数量
  22. int charCount=0;
  23. //行数
  24. int lineCont=0;
  25. //缓冲流-里面包着字符输入流
  26. BufferedReader br=new BufferedReader(new FileReader(file));
  27. //每一行的字符串
  28. String line;
  29. while((line=br.readLine())!=null){
  30. //行数++
  31. lineCont++;
  32. //每行的字符数量累计到总数
  33. charCount+=line.length();
  34. //每行的换行符也算一个字符
  35. charCount++;
  36. }
  37. return new FileStat(file.getName(),charCount,lineCont );
  38. }
  39. }