码迷,mamicode.com
首页 > 编程语言 > 详细

J2SE知识点归纳笔记(七)---Java IO Part 2:获取键盘输入与IO流体系图

时间:2015-04-27 15:16:03      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:java   io流   获取键盘输入   字符流   字节流   

J2SE知识点归纳笔记(七)---Java IO Part 2:获取键盘输入与IO流体系图

                                                                ——转载请注明出处:coder-pig


本节引言:


好了,上一节中我们给大家介绍了File与RandomAccessFile类的用法,本节我们还是讲一些

常用的东西,如果学过C++或者C的朋友都知道,获取键盘的输入都很简单,scanf( )和cin就可以

获得我们从控制台输入的参数了,或者说捕获键盘的输入吧~而在Java中呢?貌似我们用

的最多的是:syso吧,但这是打印输出的..好吧,本节就先来讲解几种控制台输入参数或数据

的方法,接着呢,再给大家介绍Java IO流体系图,让大家对Java中IO所用到的流有个基本的了解

废话不多说,开始本节内容~技术分享



1.Java获取键盘输入的几种方法:


1)单个字符的输入:

就是说,使用下述方法虽然可以获取到键盘的输入,但是只获取一个字符!!!

如果你想获取的是一个汉字,就算了吧,另外要对异常进行捕获哦...

代码如下:

import java.io.IOException;

public class StringTest {
	public static void main(String[] args) {
		char c;
		try {
			c = (char) System.in.read();
			System.out.println("键盘输入的字符是:"+c);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

运行截图:

技术分享




2)使用BufferedReader类和InputStreamReader类:

对于输入的是一条字符串的话,就需要涉及到:

BufferedReader类和InputStreamReader这两个字节流了

代码也很简单:

public static void main(String[] args) {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String str = null;
		System.out.println("输入一串字符:");
		try {
			str = br.readLine();
		} catch (IOException e) {
			e.printStackTrace();
		}
		System.out.println("打印输出的字符:\n"+str);
	}



3)使用的Scanner类:

JDK 1.5推出的一个新特性,美其名曰:简化扫描,该类提供了很多的方法,但是该类最实用

的方法还是获取控制台输入,所以这里只讲获取控制台输入...

Scanner提供的几个常用方法:

next( ):获得一个字符串;

nextInt():将取得的字符串转换成int类型的整数;

nextFloat():将取得的字符串转换成float型;

nextBoolean():将取得的字符串转换成boolean型;

nextLine():读取该行剩余的所有的内容,包括换行符,然后把焦点移动到下一行的开头


PS:当我们按下:空格符,包括空格键,Tab键和Enter键随便一个键,就算结束了输入过程,

     另外要注意区分nextLine( )与其他方法的区别哦~


示例代码:

		Scanner s1 = new Scanner(System.in);
		//用于区分next()与nextLine()的区别
		System.out.println("next( )方法输入字符串");
		String s2 = s1.next();
		System.out.println("得到的字符串:" + s2 + "长度为:" + s2.length());
		System.out.println("nextLine( )方法输入字符串");
		String s3 = s1.nextLine();
		System.out.println("得到的字符串:" + s3 + "长度为:" + s3.length());
		//获取键盘输入字符串的方法,把注释去掉就可用了~:
//		 System.out.println("请输入字符串:"); 
//         while (true) { 
//                 String line = s1.nextLine(); 
//                 if (line.equals("end")) break; 
//                 System.out.println("你输入的是:" + line); 
//         } 
	}

运行截图:

技术分享



4)通过args在命令行输入:

我们都知道main( )方法有一个参数:String[] args,我们可以通过在命令

行输入参数,然后直接在主程序中args[i]来访问:

示例代码:

public class JavaTest2 {
	public static void main(String[] args) {
		for (int i = 0; i < args.length; i++)
			System.out.println(args[i]);
	}
}

运行截图:

技术分享




2.Java IO流体系图:

1.)流的概念:

(文绉绉的专业(ZB)解析):数据流是一串连续不断的数据的集合,就象水管里的水流,

在水管的一端一点一点地供水,而在水管的另一端看到的是一股连续不断的水流。数据写入程序可以是一段,

一段地向数据流管道中写入数据,这些数据段会按先后顺序形成一个长的数据流。


简单理解:

比如你的电脑,想打开一个PDF的文件,而你的文件是存储在计算机硬盘上的,打开就是需要对文件进行解码,

然后把内容显示到PDF阅读器上,这里就是硬盘的数据->以流的形式传递到->内存的一个过程,这里就涉及到了IO流!

这样也验证了流的两个特性:源端和目的端(发送流,接收流);有方向!

根据流的方向又可以分为:输出流与输入流!

输出流:一般是从计算机流向外设的数据流

输出流:一般是从外设流入计算机的数据流



如果还不理解这个概念的话,举个形象的例子吧:

技术分享


流是有方向的,如果自来水厂把生活污水从自来水管排到你家...技术分享



2.)Java IO流体系图:

上面我们按流方向把流分成了输入流与输出流!

接下来我们按传输的数据单位进行分类:字节流与字符流!

对应的基类(父类)是:InputStream,OutputStream和Reader,Writer

还衍生了很多超类(子类):辅助流,缓冲流,过滤流等,下面就来看下他们的体系结构图:

ps:其实大部分输入流与输出流都是一一配对的,看图就知道了~


①InputStream字节流体系结构图:


技术分享


②OutputStream字节流体系结构图:


技术分享


③Reader字符流体系结构图:


技术分享



④Writer字符流体系结构图:


技术分享






最后说两句:


Java IO中为我们提供的流操作有关的类与接口都已经罗列出来了,看上去很多,我们并不需要全部掌握,

知道有这东西就可以了,用到的时候再查文档或者Google就可以了~

好了,关于本节获得键盘输入与IO流体系结构图,就讲解到这里,下一节我们学习的是:

字节流InputStream与OutputStream类与其子类的用法~敬请期待技术分享








J2SE知识点归纳笔记(七)---Java IO Part 2:获取键盘输入与IO流体系图

标签:java   io流   获取键盘输入   字符流   字节流   

原文地址:http://blog.csdn.net/coder_pig/article/details/45288573

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!