1、任务简介
本节中我们需要编写一个Java程序,使得它可以统计文本行数、字符数、字节数、汉字、数字、字母及其它符号的数量。本文分为两个程序进行讲解,第一个程序首先实现文本行数、字符数及字节数的统计,然后在第一个程序的基础上实现第二个程序,第二个程序在包含第一个程序功能的基础上实现对汉字、数字、字母的统计。
2、基本任务和代码
(1)任务1
1)任务内容
实现文本行数、字符数及字节数的统计。
2)具体思路
(1)首先需要使用InputStreamReader类和BufferedReader类实现文本的读取,由于我使用的《西游记》为utf-8编码,所以还需要指定编码格式为utf-8;
(2)逐行读出文档,然后定义整型变量 i 初始值为0,并在每一次循环后自增,最后可以得出总行数;
(3)逐行读出文档,将每一行的字符串长度str.length()求出,并定义整形变量 c 初始值为0,每一次循环中都进行c = c+str.length()操作,循环结束后可以求出总的字符数;
(4)逐行读出文档,求出每一行的字节数组,然后采用与(3)中相同的方式求出总的字节数;
3)任务代码
程序保存为tongji1,代码如下:
import java.io.*;//导入java.io包中的所有类
import java.util.Scanner;//导入java.util包中的Scanner类
public class tongji1 {
//类名
public static void main(String[] args) {
//程序主函数
try {
//try代码块,当发生异常时会转到catch代码块中
//读取指定的文件
Scanner s = new Scanner(System.in);//创建scanner,控制台会一直等待输入,直到敲回车结束
System.out.println("请输入想要打开的文本文档:");//输入提示信息
String a = s.nextLine();//定义字符串变量,并赋值为用户输入的信息
//创建类进行文件的读取,并指定编码格式为utf-8
InputStreamReader read = new InputStreamReader(new FileInputStream(a),"utf-8");
BufferedReader in = new BufferedReader(read);//可用于读取指定文件
String str=null;//定义一个字符串类型变量str
int i = 0;//定义一个整型变量,用于统计行数
int c = 0;//定义一个整型变量,用于统计字符数
int d = 0;//定义一个整型变量,用于统计字节数
while ((str = in.