`
sxj19881213
  • 浏览: 8645 次
社区版块
存档分类
最新评论

Scanner与Readable接口

阅读更多

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());}
}

}

 

0
0
分享到:
评论

相关推荐

    IISPutScanner增强版

    "Shell"通常指的是远程命令执行的接口,它能让攻击者执行任意系统命令,执行恶意操作,比如数据窃取、服务器瘫痪等。 IISPutScanner的增强版可能包含了更高级的扫描算法,能够更有效地发现和利用这些漏洞。例如,它...

    IISPutScanner1.3原版

    【IISPutScanner1.3原版】是一个针对IIS(Internet Information Services)服务器的安全扫描工具,主要用于检测和预防通过PUT方法进行的非法文件上传。PUT是HTTP协议中的一种方法,允许客户端将文件上传到服务器。...

    基于TWAIN接口程序.zip_Scanner _camera scanner_twain_摄像头_视频

    标签中的关键词“scanner”、“camera scanner”、“twain”、“摄像头”和“视频”揭示了这个项目的核心元素:使用TWAIN接口的摄像头扫描功能,以及与视频相关的图像处理。 压缩包内的文件名称列表: 1. `...

    对ZXing封装的Scanner源码

    6. **UI集成**:封装后的Scanner可能还提供了与UI交互的接口,比如展示扫描预览、显示扫描结果等,使得开发者能够更方便地将扫描功能融入到自己的应用界面中。 在Android应用中,你可以通过以下步骤使用封装后的...

    EthernetIP Scanner Demo1.zip

    它允许用户通过个人电脑的网络接口直接与这些设备建立连接,进行通讯测试,以确保设备的正确配置和功能。 在工业自动化系统中,Ethernet/IP提供了设备级和控制层的通信,能够实现控制器与控制器、控制器与智能设备...

    Advanced-IP-Scanner

    6. **报警与通知**:软件可配置为在特定事件(如新设备接入网络)发生时发送通知,提高网络管理的响应速度。 7. **易于使用**:Advanced_IP_Scanner界面简洁,操作直观,即便是对网络管理不熟悉的用户也能轻松上手...

    Scanner类的用法

    ### Scanner类的用法 #### 一、简介与基本用法 `Scanner`类是Java SDK 1.5版本引入的新特性,它提供了一种方便的方式来读取基本数据类型(如int、double)以及字符串类型的数据。在Java中,通过`java.util.Scanner...

    Scanner+hasNextInt习题

    ### Scanner与hasNextInt()详解 在Java编程语言中,`Scanner`类是处理基本数据类型(如int、float等)以及字符串输入的一种常用方法。它位于`java.util`包中,可以用来读取不同类型的输入,如文本、数字等。在本篇...

    RTLSDR-Scanner-1.3.2.zip_C++_RTLSDR_RTLSDR Scanner_RTLSDR-Scanne

    RTLSDR-Scanner-1.3.2.zip 是一个包含C++编程语言实现的软件工具,主要用于配合RTL-SDR(Realtek低成本软件定义无线电)设备进行射频扫描。RTLSDR Scanner是一款实用的开源软件,它允许用户探索并检测周围环境中不同...

    ASML Scanner 光刻机介绍

    ASML.Scanner 光刻机介绍 ASML.Scanner 光刻机是半导体制造行业中的关键设备, Plays a crucial role in the semiconductor manufacturing industry。下面是该设备的知识点总结: 一、Course Introduction * ...

    Anybus-X DeviceNet Scanner Interface

    在IT行业的专业知识分享中,关于“Anybus-X Device...总之,Anybus-X DeviceNet Scanner Interface不仅是一款技术产品,更是工业自动化领域创新与实践的结合体,它的成功应用将为现代制造业带来前所未有的便利与效率。

    IISPutScanner+IISWrite

    标题"IISPutScanner+IISWrite"涉及到的是两个在网络安全领域中常见的工具,主要用于渗透测试。IISPutScanner和IISWrite是针对Microsoft Internet Information Services (IIS) Web服务器进行安全评估的工具。 IISPut...

    虚拟扫描仪Virtual Twain Scanner 32/64位

    TWAIN是一种通用的API(应用程序编程接口),允许应用程序与各种扫描设备之间进行通信,如扫描仪、数码相机等。通过VirtualTwain,开发者可以创建自己的虚拟扫描仪应用,实现图像捕获、处理和传输等功能,而无需实际...

    文件夹容量查看器——scanner

    "文件夹容量查看器——Scanner"是一款专为用户揭示硬盘空间使用情况的实用工具。它以直观、易懂的方式,通过饼状图呈现文件夹和单个文件的大小,帮助用户快速掌握磁盘的占用状况。 Scanner软件的核心功能在于其深度...

    java Scanner 的用法

    #### 一、简介与应用场景 `java.util.Scanner` 是 Java SDK 1.5 版本引入的一个类,用于简化文本扫描任务,它能够解析基本类型(如 `int`, `double`)以及字符串类型的数据。在进行用户交互时,`Scanner` 类提供了...

    IIS PUT Scanner 1.3

    IIS PUT Scanner 1.3,快速扫描指定IP段(配合对iis写权限的利用工具)使用.

    Java中Scanner用法.doc

    ### Java中Scanner类的用法...掌握`Scanner`类的基本用法对于Java初学者来说非常重要,它能够帮助你快速完成数据输入与处理的任务。此外,通过合理的设置分隔符和检查数据类型,可以进一步提高程序的健壮性和灵活性。

    scanner activex control SDK例程

    Scanner ActiveX Control SDK是开发扫描仪应用程序的重要工具,它提供了一种方便的方式来集成扫描功能到Web页面、桌面应用或其他支持ActiveX技术的环境中。ActiveX控件是一种组件对象模型(COM),由微软开发,用于...

    burp安装Upload Scanner插件

    burp安装Upload Scanner插件

Global site tag (gtag.js) - Google Analytics