Readable接口中的read()方法实现了将字符串读入charBuffer中,但是只有在需要输出的时候才会调用。
Scanner是文本扫描器类,利用Scanner扫描并输出charBuffer中的内容的顺序:以hasNext()方法为例:第一次调用hasNext(),由于此时charBuffer并无内容,等待输入,hasNext()方法阻塞,调用并执行read()方法,执行完read()方法,根据read方法的返回值来确定是否hasNext()的返回值是true或者false:若read()返回值不为-1,则认为hasNext()为true,并且继续调用read()方法;若read()返回值为-1,则认为hasNext()为false,不再调用read()方法。
另外,在输出时是根据下一个空格标记(cb.append(" "))为准,未读到空格标记之前,无论调用多少次read()方法,都不会输出,直到read()f方法返回-1或者读到空格标记,就会输出之前很多次通过read()方法加到charBuffer的字符串。
import java.nio.CharBuffer;
import java.util.Scanner;
class A implements Readable{
private static final char[] lowers="ABCDEFGHIJKLMOPQRSTUVWXYZ".toLowerCase().toCharArray();
private int count;
private int j = 1;
public A(int count) {
this.count = count;
}
@Override
public int read(CharBuffer cb) {
System.out.println("第"+j+"次进入read()方法");
//cb.append("aaa");
//cb.append(" ");
if (count-- == 0) {
return -1;
}
if(j==1){
System.out.println("第1次");
cb.append(" ");
//cb.append(lowers[0]);
j++; return 1;
}
if(j==2){System.out.println("第2次");cb.append(lowers[0]);j++; return 1;}
if(j==3){System.out.println("第3次");cb.append(lowers[0]);j++; return 1;}
if(j==4){System.out.println("第4次");cb.append(lowers[0]);j++; cb.append(" "); return 1;}
return 2;
}
}
public class MyScanner {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(new A(4));
//System.out.println(scan.hasNext()+" aaaaaaa");
while(scan.hasNext()){
System.out.println(scan.next());}
}
}
分享到:
相关推荐
"Shell"通常指的是远程命令执行的接口,它能让攻击者执行任意系统命令,执行恶意操作,比如数据窃取、服务器瘫痪等。 IISPutScanner的增强版可能包含了更高级的扫描算法,能够更有效地发现和利用这些漏洞。例如,它...
【IISPutScanner1.3原版】是一个针对IIS(Internet Information Services)服务器的安全扫描工具,主要用于检测和预防通过PUT方法进行的非法文件上传。PUT是HTTP协议中的一种方法,允许客户端将文件上传到服务器。...
标签中的关键词“scanner”、“camera scanner”、“twain”、“摄像头”和“视频”揭示了这个项目的核心元素:使用TWAIN接口的摄像头扫描功能,以及与视频相关的图像处理。 压缩包内的文件名称列表: 1. `...
6. **UI集成**:封装后的Scanner可能还提供了与UI交互的接口,比如展示扫描预览、显示扫描结果等,使得开发者能够更方便地将扫描功能融入到自己的应用界面中。 在Android应用中,你可以通过以下步骤使用封装后的...
它允许用户通过个人电脑的网络接口直接与这些设备建立连接,进行通讯测试,以确保设备的正确配置和功能。 在工业自动化系统中,Ethernet/IP提供了设备级和控制层的通信,能够实现控制器与控制器、控制器与智能设备...
6. **报警与通知**:软件可配置为在特定事件(如新设备接入网络)发生时发送通知,提高网络管理的响应速度。 7. **易于使用**:Advanced_IP_Scanner界面简洁,操作直观,即便是对网络管理不熟悉的用户也能轻松上手...
### Scanner类的用法 #### 一、简介与基本用法 `Scanner`类是Java SDK 1.5版本引入的新特性,它提供了一种方便的方式来读取基本数据类型(如int、double)以及字符串类型的数据。在Java中,通过`java.util.Scanner...
### Scanner与hasNextInt()详解 在Java编程语言中,`Scanner`类是处理基本数据类型(如int、float等)以及字符串输入的一种常用方法。它位于`java.util`包中,可以用来读取不同类型的输入,如文本、数字等。在本篇...
RTLSDR-Scanner-1.3.2.zip 是一个包含C++编程语言实现的软件工具,主要用于配合RTL-SDR(Realtek低成本软件定义无线电)设备进行射频扫描。RTLSDR Scanner是一款实用的开源软件,它允许用户探索并检测周围环境中不同...
ASML.Scanner 光刻机介绍 ASML.Scanner 光刻机是半导体制造行业中的关键设备, Plays a crucial role in the semiconductor manufacturing industry。下面是该设备的知识点总结: 一、Course Introduction * ...
在IT行业的专业知识分享中,关于“Anybus-X Device...总之,Anybus-X DeviceNet Scanner Interface不仅是一款技术产品,更是工业自动化领域创新与实践的结合体,它的成功应用将为现代制造业带来前所未有的便利与效率。
标题"IISPutScanner+IISWrite"涉及到的是两个在网络安全领域中常见的工具,主要用于渗透测试。IISPutScanner和IISWrite是针对Microsoft Internet Information Services (IIS) Web服务器进行安全评估的工具。 IISPut...
TWAIN是一种通用的API(应用程序编程接口),允许应用程序与各种扫描设备之间进行通信,如扫描仪、数码相机等。通过VirtualTwain,开发者可以创建自己的虚拟扫描仪应用,实现图像捕获、处理和传输等功能,而无需实际...
"文件夹容量查看器——Scanner"是一款专为用户揭示硬盘空间使用情况的实用工具。它以直观、易懂的方式,通过饼状图呈现文件夹和单个文件的大小,帮助用户快速掌握磁盘的占用状况。 Scanner软件的核心功能在于其深度...
#### 一、简介与应用场景 `java.util.Scanner` 是 Java SDK 1.5 版本引入的一个类,用于简化文本扫描任务,它能够解析基本类型(如 `int`, `double`)以及字符串类型的数据。在进行用户交互时,`Scanner` 类提供了...
IIS PUT Scanner 1.3,快速扫描指定IP段(配合对iis写权限的利用工具)使用.
### Java中Scanner类的用法...掌握`Scanner`类的基本用法对于Java初学者来说非常重要,它能够帮助你快速完成数据输入与处理的任务。此外,通过合理的设置分隔符和检查数据类型,可以进一步提高程序的健壮性和灵活性。
Scanner ActiveX Control SDK是开发扫描仪应用程序的重要工具,它提供了一种方便的方式来集成扫描功能到Web页面、桌面应用或其他支持ActiveX技术的环境中。ActiveX控件是一种组件对象模型(COM),由微软开发,用于...
burp安装Upload Scanner插件