`

readable接口

 
阅读更多

Readable接口就是为了Scanner类专门创建的一个接口,使得Scanner的入口参数不必限于某个类。实现Readable接口要只需是实现public int read(CharBuffer cb)方法。当方法返回-1时候Scanner类停止读取。package com.liuc.test.think.chapter9;

import java.io.IOException;
import java.nio.CharBuffer;
import java.util.Random;
import java.util.Scanner;

public class RandomWords implements Readable{
	private Random rand=new Random(47);
	private static final char[] capitals="ABCDEFGHIJKLMOPQRSTUVWXYZ".toCharArray();
	private static final char[] lowers="ABCDEFGHIJKLMOPQRSTUVWXYZ".toLowerCase().toCharArray();
	private static final char[] vowels="aeiou".toCharArray();
	private int count;
	
	public RandomWords(int count) {
		this.count=count;
	}
	


	@Override
	public int read(CharBuffer cb) throws IOException {
		if (count--==0) {
			return -1;
		}
		cb.append(capitals[rand.nextInt(capitals.length)]);
		for (int i = 0; i < 4; i++) {
			cb.append(vowels[rand.nextInt(vowels.length)]);
			cb.append(lowers[rand.nextInt(lowers.length)]);
		}
		cb.append(" ");
		return 10;
	}
	
	
	public static void main(String[] args) {
		Scanner scanner=new Scanner(new RandomWords(10));
		while (scanner.hasNext()) {
			System.out.println(scanner.next());
			
		}
	}

}
 
分享到:
评论

相关推荐

    面向对象程序设计试题.doc

    2. 具体类 Reader 实现了 Readable 接口。修改的关键在于正确实现接口中的方法。正确的修改代码为: ```java interface Readable { void read(); } class Reader implements Readable { public void read() { ...

    java重量级源码-geny:提供geny.Generator数据类型,可以确保资源清理的scala.Iterator的双重类型

    可以在这篇博文中找到Writable和Readable接口背后的更多背景: 发电机 Generator基本上是scala.Iterator :核心功能不是基于拉取的hasNext和next: T方法,而是基于基于推送的generate方法,它类似于foreach ,但做了...

    Zabbix系统接口文档.docx

    Zabbix系统接口文档 Zabbix系统接口文档是一份详细的API文档,为Zabbix开发者和用户提供了便捷的接口调用指南。本文档中,我们将详细介绍Zabbix系统接口的各个方面,包括获取API版本、关联、监控项等。 获取API...

    Zabbix系统监控接口文档

    ### Zabbix系统监控接口文档知识点解析 #### 一、概述 Zabbix是一款开源的企业级监控解决方案,能够对网络服务器、数据库、应用程序等进行全方位的监控。本文档详细介绍了Zabbix系统的API接口,涵盖从基本的API...

    glob-stream:Node-glob上的Readable Stream接口

    球流 接口。用法 var gs = require ( 'glob-stream' ) ;var readable = gs ( './files/**/*.coffee' , { /* options */ } ) ;var writable = /* your WriteableStream */readable . pipe ( writable ) ; 您可以传递...

    zabbix监控接口测试文档

    ### zabbix监控接口测试知识点详解 #### 一、概述 本文档主要针对Zabbix监控系统的接口进行了详尽的测试,并记录了测试过程中所使用的各种方法和技术。Zabbix是一款开源的企业级监控工具,能够帮助管理员对网络环境...

    Readable-Backend-Update

    在“Readable-Backend-Update”项目中,我们主要聚焦于使用C#语言对后端进行的一次重要更新。这次更新可能涉及到了多个方面,包括但不限于性能优化、功能增强、代码重构以及错误修复等。C#是一种面向对象的编程语言...

    web-readable-stream:通用ReadableStream实现

    `web-readable-stream`库实现了这一接口,并确保其在不同环境下的兼容性,这对于开发可移植的、高性能的前端或后端应用非常重要。 `web-readable-stream`库的核心功能包括: 1. **跨环境兼容性**:此库允许开发者...

    浅谈Node.js:理解stream

    Stream在node.js中是一个抽象的接口,基于EventEmitter,也是一种Buffer的高级封装,用来处理流数据。流模块便是提供各种API让我们可以很简单的使用Stream。 流分为四种类型,如下所示: Readable,可读流 ...

    daidaimar-sezemi-2015-readable-code

    8. **代码复用**:利用继承、接口和抽象类来实现代码复用,减少重复代码。 9. **测试驱动开发(TDD)**:通过编写单元测试来验证代码的功能,也可以帮助确保代码的可读性和可维护性。 10. **持续集成(CI)**:结合...

    Human readable Glassfish Log-开源

    hgl的全称可能是"Human-readable Glassfish Log",它能实时解析`server.log`文件,将复杂的日志信息转化为清晰、简洁的文本输出,使得非技术人员也能轻松理解。通过hgl,用户可以快速定位问题,跟踪服务器的运行状况...

    微信小程序 Node.js (基础七) Stream流 & (基础八) exports模块系统

    微信小程序 Node.js (基础七) Stream(流)Stream 是一个抽象接口,Node 中有很多对象实现了这个接口。Stream 有四种流类型:- Readable - 可读操作。- Writable - 可写操作。- Duplex - 可读可写操作.- Transform - ....

    微信小程序通过MQTT协议连接阿里云代码 实现功能为获取并解析硬件上传的数据,向硬件设备发送命令等

    开发者需要设置MQTT连接。通过微信小程序的开发环境,使用MQTT.js库可以...开发者可以构建一个发布消息的接口,例如向主题“device/control”发布指令。指令内容通常包括目标操作,如开关状态、设定值等。通过这种方

    android面试知识点总结

    - `Context.MODE_WORLD_READABLE`:使文件可被所有应用读取,需与`Context.MODE_PRIVATE`或其他模式组合使用。 - `Context.MODE_WORLD_WRITEABLE`:使文件可被所有应用写入,同样需与其他模式结合使用。 - **...

    node-httpcode:请求对象描述

    使用 http 请求对象的 ReadableStream 接口 此页面: : 提到 requestListener 函数会自动添加到... 现在,在 ReadableStream (stream.Readable) 接口, //nodejs.org/api/stream.html 的文档中,我们发现它有事件 r

    oops-wp:一组抽象类,接口和特征,用于在WordPress中促进面向对象的编程实践

    OOPS-WP:WordPress的面向对象的编程结构 该库提供了抽象类,接口和特征的集合,以... if ( is_readable( __DIR__ . '/vendor/autoload.php' ) ) { require_once __DIR__ . '/vendor/autoload.php'; } 注意: 提供有

    精伦身份证阅读器通用二次开发SDK

    例如,可以使用特定的API来初始化阅读器、检测身份证、读取MRZ(Machine Readable Zone,机器可读区)信息,以及获取包含姓名、性别、出生日期、住址等在内的详细个人信息。 SDK还可能包含示例代码和项目,这些示例...

    疯狂android资料:第八章android的数据存储和IO.doc

    同时,`SharedPreferences`接口不直接支持写入操作,而是通过`Editor`接口实现。`Editor`提供了`putXXX()`方法添加或更新键值对,`clear()`清除所有数据,`remove()`删除指定键的数据,最后通过`commit()`提交更改。...

Global site tag (gtag.js) - Google Analytics