/*
wc( )方法对任何输入流进行操作并且计算字符数,行数和字数。它在lastNotWhite里追踪字数的奇偶和空格。当在没有参数的情况下执行时,WordCount以System.in为源流生成一个InputStreamReader对象。该流然后被传递到实际计数的 wc( )方法。当在有一个或多个参数的情况下执行时,WordCount 假设这些文件名存在并给每一个文件创建FileReader,传递保存结果的FileReader对象给wc( ) 方法。两种情况下,在退出之前都打印结果。
*/
//A word counting utility.
import java.io.*;
class WordCount{
public static int intWords = 0;
public static int intLines = 0;
public static int intChars = 0;
public static void wc(InputStreamReader isr) throws IOException{
int c = 0;
boolean lastWhite = true;
String whiteSpace = "\t\n\r";
while((c=isr.read())!=-1){
//Count characters.
intChars++;
//Count lines.
if(c=='\n'){
intLines++;
}
//Count words by detecting the start of a word
int intIndex = whiteSpace.indexOf(c);
if(intIndex == -1){
if(lastWhite == true){
++intWords;
}
lastWhite = false;
}else{
lastWhite = true;
}
}
if(intChars !=0){
++intLines;
}
}
public static void main(String[] args)
{
FileReader fr ;
try{
if(args.length ==0){
//We're working with stdin
wc(new InputStreamReader(System.in));
}else{
//We're working with a list of files.
for(int i=0;i<args.length;i++){
fr = new FileReader(args[i]);
wc(fr);
}
}
}catch(IOException e){
return;
}
System.out.println(intLines + " " + intWords + " " + intChars);
}
}
分享到:
相关推荐
Java I/O 包是Java平台的核心部分,它提供了丰富的类和接口用于处理输入输出操作,包括文件操作和流式输入输出。在这个主题中,我们将深入探讨如何使用Java进行文件管理和流处理。 首先,我们来看看`java.io`包中的...
【Java输入输出流详解】 Java输入输出流(Input/Output Stream)是Java平台核心API的重要组成部分,主要用于处理数据的输入和输出。Java的I/O机制是基于流的,即数据以流的形式从一个地方传输到另一个地方。Java的I...
Java流式IO编程的基本原理是:将不同的输入/输出源抽象表述为“流”,然后使用流类型(类或抽象类)来实现输入/输出功能。Java中有两种基本的流类型:字节流和字符流。 字节流是以字节为单位的流,用于处理二进制...
一旦连接建立,双方就可以通过输入/输出流进行数据交换。当通信结束时,关闭Socket和相关的输入/输出流资源。 **Android中Socket的实现步骤** 1. **服务器端** - 创建ServerSocket对象,指定监听的端口号。 - ...
流式输出 / 普通输出 多会话 + 记录存储 + 记录管理(新增/清空/删除) 数据导出 语音聊天 + 语音播放 接入文生图模型(MidJourney / Stable Diffusion Model) PDF智能阅读(论文 / 简历 / 知识文档等) 接...
在项目实践中,"day05"可能代表课程的第五天,涵盖了一些具体的字符串和格式化输入输出的示例。`.VC.db`是Visual Studio的数据库文件,用于跟踪项目信息;`.vs`目录包含了Visual Studio的工作空间配置;`Debug`目录...
例如,Modbus协议就常用于流设备,通过定义输入和输出终止符来处理数据包的边界。 2. Asyn Port Drivers:Asyn(异步)端口驱动程序是EPICS中的关键组件,它提供了一种通用的、可扩展的接口,支持TCP/IP、UDP/IP、...
Java语言学习课件中,重点讲解的是Java的流式I/O编程。在Java中,为了进行数据的输入/输出操作,引入了“流”的概念,流是连接输入/输出源...通过不断地练习和实践,开发者可以更加灵活地处理各种数据输入输出需求。
此外,C++还提供了iostream库用于流式输入/输出,如std::cin和std::cout。 在《C/C++库函数帮助手册》中,你可以找到每一个库函数的详细描述,包括函数原型、参数说明、返回值以及可能出现的错误情况。这些信息对于...
本篇文档将重点介绍V4L2 API中文手册中的关键知识点,特别是第三章关于输入/输出方法的部分。 #### 二、V4L2 API概述 V4L2 API为视频采集设备提供了一套完整的接口规范,它定义了一系列函数和数据结构,使得开发者...
- `#include <iostream>`:这是C++标准库中的输入输出头文件,提供了`std::cin`和`std::cout`对象,用于流式输入输出。在C++11及以后的版本中,推荐使用`<iostream>`而不是`<iostream.h>`。 2. **参数化输入/输出*...
标题中的“261个C程式范例的光碟 (io)”表明这是一份包含大量C语言编程示例的资源,主要关注输入/输出(I/O)操作。在C语言中,I/O操作是程序与用户交互的基础,包括读取用户输入和向屏幕或文件输出信息。这些范例可能...
这些类主要用于实现流式输入输出,其中,流是数据在计算机与外设之间传输的序列。流可以分为两大类:位流(字节流)和字符流,分别对应InputStream和OutputStream接口及其子类。字节流处理单个字节的数据,字符流则...
这两个对象都是`istream`和`ostream`类的实例,它们分别继承自`istreambase`和`ostreambase`,提供了流式输入输出的接口。 1. **基本的输入输出操作:** - `std::cin`:你可以使用`cin`来读取用户输入的数据。例如...
流式I/O提供了一种通用的方式来处理数据输入输出。 6. 格式化输入/输出:`fprintf`和`scanf`的变体,允许在文件或缓冲区中进行格式化输入输出。 7. 错误处理和诊断:`errno`全局变量保存错误代码,`perror`将错误...
在C++编程中,函数模板是一种非常强大的工具,它允许我们编写可以处理多种数据类型的通用函数。...通过实践这个项目,你可以更好地理解C++的泛型编程和流式输入输出,这些都是现代C++开发中的核心技能。
首先,我们需要包含必要的头文件,`fstream`头文件提供了输入/输出流类,用于处理文件操作。在程序中,我们主要会用到`ofstream`类,它代表输出文件流,可以将数据写入文件。 ```cpp #include ``` 接下来,我们...
1. 输入/输出:`printf`和`scanf`是C语言中最常用的I/O函数,用于格式化输出和输入。还有`fopen`、`fclose`等函数用于文件操作。 2. 数学运算:`math.h`头文件提供了各种数学函数,如平方根`sqrt`、指数`exp`、对数...
`Function, R>`接口定义了一个方法`apply`,用于将输入参数转换为另一个类型的输出。此外,`Function`接口也支持链式调用。 示例代码: ```java Function, Integer> toInteger = Integer::valueOf; Function, ...
本章节介绍了输入输出操作的相关知识,包括传统的读写操作、流式I/O操作、异步I/O操作、缓冲区的使用以及时码和字段顺序的处理。流式I/O操作又分为内存映射缓冲区和用户空间缓冲区两种方式,每种方式都有自己的特点...