再论流之读取控制台输入

在java1.0中,执行控制台输入的唯一方法是使用字节流。现在仍然可以使用字节流读取控制台输入。但是,对于商业应用程序,读取控制台输入的更好方法是使用面向字符的流。使用面向字符的流可以使程序更容易国际化和维护。

在Java中,控制台输入是通过从System.in读取完成的。为了获得与控制台关联的基于字符的流。可以在BufferedReader对象中封装System.io。BufferedReader支持缓存的输入流。通常使用的构造函数如下所示:

BufferedReader(Reader inputReader)

其中,inputReader是与即将创建的BufferedReader实例链接的流。Reader是抽象类,InputStreamReader是它的一个具体子类,该类将字节转换成字符。为了获得与System.in链接的InputStreamReader对象,使用下面的构造函数:

InputStreamReader(InputStream inputStream)

因为System.in引用InputStream类型的对象,所以可以用作inputStream的参数。我们来看看下面两个例子:

例一:读取字符

为了从BufferedReader对象读取字符,需要使用read()方法。每次调用read()方法都会从输入流读取一个字符,并将之作为整型值返回。

package io;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class BRRead {
    public static void main(String[] args) throws IOException {
        char c;
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Enter characters,‘q‘ to quit.");
        do{
            c = (char)br.read();
            System.out.println(c);
        }while(c != ‘q‘);
    }
}
时间: 2024-10-10 21:54:52

再论流之读取控制台输入的相关文章

(六)read读取控制台输入

1.基本语法 read(选项)(参数) 选项: -p:指定读取值时的提示符: -t:指定读取值时等待的时间(秒). 参数 变量:指定读取值的变量名 2.案例实操 (1)提示7秒内,读取控制台输入的名称 [atguigu@hadoop101 datas]$ touch read.sh [atguigu@hadoop101 datas]$ vim read.sh #!/bin/bash read -t 7 -p "Enter your name in 7 seconds " NAME ec

5、shell-read读取控制台输入

1.基本语法 read(选项)(参数) 选项: -p:指定读取值时的提示符: -t:指定读取值时等待的时间(秒). 参数 变量:指定读取值的变量名 2.案例实操 (1)提示7秒内,读取控制台输入的名称 [[email protected] datas]$ touch read.sh [[email protected] datas]$ vim read.sh #!/bin/bash read -t 7 -p "Enter your name in 7 seconds " NAME ec

8.read读取控制台输入

read(选项)(参数)选项:-p:指定读取值时的提示符-t:指定读取时等待的时间(秒),如果没有在指定的时间内输入,就不再等待了参数:变量:指定读取时的变量名 原文地址:https://www.cnblogs.com/traditional/p/10160702.html

测试InputStreamReader的demo(转换流),将控制台输入内容打印在控制台上

import java.io.*; public class TestInputStreamReader{ public static void main(String[] args){ try{ InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); String str = null; while(!(str = br.readLine()).

JAVA读取控制台的输入【转】

前面介绍了使用IO类实现文件读写的示例,其实在很多地方还需要使用到IO类,这里再以读取控制台输入为例子来介绍IO类的使用. 控制台(Console)指无图形界面的程序,运行时显示或输入数据的位置,前面的介绍中可以使用System.out.println将需要输出的内容显示到控制台,本部分将介绍如何接受用户在控制台中的输入. 使用控制台输入是用户在程序运行时和程序进行交互的一种基础手段,这种手段是Windows操作系统出现以前,操作系统位于DOS时代时,用户和程序交互的主要手段.当然,现在这种交互

读取控制台的输入

1.创建InputStreamReader类的对象,参数为System.in 2.创建BufferedReader类的对象,参数为InputStreamReader类的对象 3.准备待写入文件 4.String 临时存储与结束对比符 5.使用readLine()方法读取控制台,等于null结束循环(其实永远不会为null) 6.如果输入与结束对比符一样则结束循环(break)(使用equalsIgnoreCase()不区分大小写) 7.写入文件 8.关闭能关闭的(InputStreamReade

java控制台输入Scanner、InputStreamReader、Console说明

java控制台输入 (2009-12-08 11:13:28) 转载▼ 标签: 杂谈 分类: corejava 0 引言从控制台中读取数据是一个比较常用的功能,在 JDK 5.0 以前的版本中的实现是比较复杂的,需要手工处理系统的输入流.有意思的是,从 JDK 5.0 版本开始,能从控制台中输入数据的方法每增加一个版本号,就有一种新增的方法,这也增加了选择的种类,可以依据不同的要求来进行选择.下面来看一下,各个版本中如何从控制台中读取数据以及各自的优缺点. 1 JDK 1.4 及以下版本读取的方

将控制台输入的每一行字符串,输出至txt文件当中

/** *    需求:将控制台输入的每一行字符串,输出至txt文件当中. /** * 需求:将控制台输入的每一行字符串,输出至txt文件当中. * 思路: * 1.首先想到BufferReader高级流读取一行字符串readLine方法. * 2.但是前提依赖于字符转换流ISR和低级节点流,这里是从控制台输入,节点流自然是System.in.如果是从文件输入,则节点流换成FIS即可 * 3.这样就能建立一条输入流了.BufferedReader(new InputStreamReader(Sy

1.java.io包中定义了多个流类型来实现输入和输出功能,

1.java.io包中定义了多个流类型来实现输入和输出功能,可以从不同的角度对其进行分 类,按功能分为:(C),如果为读取的内容进行处理后再输出,需要使用下列哪种流?(G)   A.输入流和输出流 B.字节流和字符流 C.节点流和处理流   D.File stream E.Pipe stream F.Random stream G.Filter stream