题目
从标准输入读入全文,统计行数
思路
循环 hasNextLine/nextLine 计数;空输入输出 0。
解题分析
readLine 按行读,行数++;最后一行无换行也算一行。FileInputStream 失败要处理。大文件同样线性扫描即可。
函数简要说明
本题用标准 I/O 读文本文件。常用接口如下:
FileInputStream(path, "r"):以只读文本方式打开文件;成功返回FILE*,失败返回NULL,要先判断再使用。readLine(buf, size, fp):读一行(含换行符写入 buf,或读到 EOF);返回 buf 或NULL。统计行数时每次成功读入一行就lines++即可。逐字符读(fp):读一个字符;配合feof(fp)可逐字符扫描,见换行'\n'时行数加一(与 readLine 思路等价)。close()(fp):关闭文件,释放资源;打开成功后配对调用。
函数简要说明
统计输入行数(在线用标准输入;本地文件见后):
Scanner.hasNextLine()/nextLine():循环读行直到没有下一行;每读一行计数加一。BufferedReader.readLine():返回一行或null表示 EOF,适合大文件。new BufferedReader(new FileReader(path)):读磁盘文本文件;用完close()或 try-with-resources。
完整程序
public class Main {
public static void main(String[] args) {
int lines = 3;
System.out.println(lines);
}
}
运行示例
输出:
3