`
yeshaoting
  • 浏览: 668255 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

四种常用读取控制台输入方法

    博客分类:
  • J2SE
阅读更多

常用四种读取控制台输入方法:

1. Scanner读取方式

2. 字符流读取方式

3. 字节流读取方式

4. Console读取方式(JDK 1.6中新增的), 实际操作过程中, 发现不支持Eclipse自带命令行.

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.Console;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Scanner;

/**
 * @TODO 四种常用读取控制台输入方法
 * @author jarg
 * @creatTime: 2010-12-29 下午04:54:41
 * @belongTo: com.jarg.io
 * @version 1.0
 */

public class ConsoleInput
{ 	/* 控制台输入为字节流 */
	public static InputStream in;

	public static void main(String[] args)
	{
		try
		{
			ScannerInput();
			CharInput();
			ByteInput();
			Console_Input();
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
	}

	/**
	 * 控制台输入
	 * */
	public static void input()
	{
		System.out.print("\ninput data:\n > ");
		in = System.in;
	}

	/**
	 * 1. Scanner读取方式
	 * */
	public static void ScannerInput()
	{
		input();
		Scanner s = new Scanner(in);
		System.out.println("1. Scanner读取方式:\t" + s.nextLine());
	}

	/**
	 * 2. 字符流读取方式
	 * 
	 * @throws IOException
	 * */
	public static void CharInput() throws IOException
	{
		input();
		/* InputStreamReader 是字节流通向字符流的桥梁 */
		InputStreamReader ir = new InputStreamReader(in);
		BufferedReader br = new BufferedReader(ir);

		System.out.println("2. 字符流读取方式:\t" + br.readLine());
	}

	/**
	 * 3. 字节流读取方式
	 * 
	 * @throws IOException
	 * */
	public static void ByteInput() throws IOException
	{
		input();

		BufferedInputStream bi = new BufferedInputStream(in);
		
		String output = "";
		int value = bi.read();
		while (value != -1 && value != 10 && value != 13)
		{
			output = output + (char) value;
			value = bi.read();
		}
		System.out.println("3. 字节流读取方式:\t" + output);
	}

	/**
	 * 4. Console读取方式,JDK 1.6中新增的
	 * 
	 * @throws IOException
	 * */
	public static void Console_Input() throws IOException
	{
		System.out.print("\ninput data:\n > ");
		Console console = System.console();
		if (console == null)
		{
			System.out.println("can not use the console.");
			return;
		}
		System.out.println("4. Console读取方式:\t" + console.readLine());
	}

}

 

1
0
分享到:
评论

相关推荐

    C_C++控制台界面编程 V3

    a) stdio.h中的常用输入、输出函数 13 b) basic_stream中的输入、输出操作 13 4) 键盘缓冲区处理 15 5) 关于C/C++中的字符串拼接问题 17 6) 怎样从控制台复制粘贴文字 18 7) 将批处理bat转换为exe程序 18 8) 在...

    python函数常用表.docx

    python函数常用表 Python是一种高级编程语言,它的函数是Python编程中最重要的组成部分之一。Python函数常用表是Python编程中最常用的函数列表之一,它包含了Python编程中最常用的函数和它们的用法。在本文中,我们...

    Java Scanner 类.pdf

    一、什么是 Java Scanner 类?...第一步 创建从控制台输入对象 第二步 提示语句 第三步 接受控制台的变量 第四步 输出或使用 import java.util.Scanner; public class Text { public static void main

    java 课程 实验

    1. 编写程序,在控制台窗口提示输入两个整数,然后接收这两个整数,并输出它们的和。(要求:键盘输入通过流封装System.in获取,不要使用Scanner类) 2. 设计学生类Student,属性:编号(整型);姓名(字符串),...

    【shell编程】基础篇

    文章目录基础篇一、Shell概述二、脚本定义与执行三、shell中的变量四、运算符五、条件判断六、流程控制七、read读取控制台输入八、函数九、Shell工具 基础篇 一、Shell概述 shell是一个功能比较强大的脚本语言,易...

    路由器口令恢复.doc

    路由器的口令恢复 实验目的:掌握配置寄存器的设置方法,常用的两种口令恢复技术。 实验设备:cisco路由器一台,pc一台。 实验内容与步骤: 1、记住配置寄存器值的值的配置方法,表示的含义。 2、配置好路由器的主机...

    C#全能速查宝典

    分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用的属性、方法、类和各种技术,...

    入门学习Linux常用必会60个命令实例详解doc/txt

    从图1中可以看到,笔者系统中可以使用的Shell有bash(缺省)、csh、sh、tcsh四种。 exit 1.作用 exit命令的作用是退出系统,它的使用权限是所有用户。 2.格式 exit 3.参数 exit命令没有参数,运行后退出系统...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    4.8.1 从控制台读取数据 94 4.8.2 结账程序中的循环 96 4.9 小结:Java不是一个直肠子 98 4.10 习题 99 第5章 数组 100 教学视频:35分钟 5.1 什么是数组 100 5.1.1 假设:如果需要逐个定义变量 100 5.1.2 ...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    4.8.1 从控制台读取数据 94 4.8.2 结账程序中的循环 96 4.9 小结:Java不是一个直肠子 98 4.10 习题 99 第5章 数组 100 教学视频:35分钟 5.1 什么是数组 100 5.1.1 假设:如果需要逐个定义变量 100 5.1.2 ...

    CIM信息系统 v0.9.3.zip

    CIM城市信息聚合系统是宛都科技开发的新一代地方门户系统、分类信息系统、人才招聘系统,基于简单、实用、灵活的理念,在系统功能架构层次做了很多努力,如果你想做一个务实的地方信息网站、...同类推荐:站长常用源码

    C#开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载

    实例031 循环向控制台中输入内容 38 实例032 递归算法的经典面试题 39 实例033 制作一个数字猜猜看小游戏 40 实例034 使用goto语句在数组中搜索指定图书 42 第3章 字符串处理技术 44 3.1 字符及字符串转换 45 实例...

    ThinkPHP v5.0.0 RC4.zip

    App类输入/输出调整 单元测试的完美支持 增加新的控制台指令 取消系统路径之外的大部分常量定义 类库映射文件由命令行动态生成 包含应用类库 [数据库] 增加分表规则方法 增加日期和时间表达式查询方法 增加...

    Java2核心技术.part5

    12.4.3读取带允隔符的输入 12.4.4 StringBuilder类 12.4.5随机存取流 12.5对象流 12.5.1存储可变类型的对象 12.5.2理解对象序列化文件格式 12.5.3保存对象引用问题的解决 12.5.4理解对象引用...

    Java2核心技术.part3

    12.4.3读取带允隔符的输入 12.4.4 StringBuilder类 12.4.5随机存取流 12.5对象流 12.5.1存储可变类型的对象 12.5.2理解对象序列化文件格式 12.5.3保存对象引用问题的解决 12.5.4理解对象引用...

    Java2核心技术.part1

    3.7.1读取输入 3.7.2格式化输出 3.8控制流程 3.8.1块作用域 3.8.2条件语句 3.8.3循环 3.8.4确定循环 3.8.5多重选择――switch语句 3.8.6中断控制流程语句 3.9大数值 3.10数组 3.10.1 “for ...

    Java2核心技术.part6

    12.4.3读取带允隔符的输入 12.4.4 StringBuilder类 12.4.5随机存取流 12.5对象流 12.5.1存储可变类型的对象 12.5.2理解对象序列化文件格式 12.5.3保存对象引用问题的解决 12.5.4理解对象引用...

Global site tag (gtag.js) - Google Analytics