CNET中国旗舰网站

ZDNet China | CNET科技资讯网 | 政府采购 | 行业网站联盟





 
标题: [原创] Java学习第四堂课
mesum
超级会员
Rank: 4



UID 321006
精华 0
积分 1760
帖子 71
威望 702
ZD币 156 元
阅读权限 90
注册 2008-4-21
状态 离线
  楼主
发表于 2008-5-13 20:28  资料  个人空间  短消息  加为好友 
开发者在线

Java学习第四堂课

Java学习第四堂课
 

我的QQ号:2535279
我的QQ群:58591592

www.javaedu.com.cn


  回顾一下上节课,我们从键盘获取了一个输入,实现了

与程序的互动,然而当我们要输入一行信息时候,比如
    I LOVE THIS GAME
的时候,系统显示给我们却只是一个 “I”,这是因为

Scanner取得输入的键或者是回车键的时候,Scanner就会返

回到下一个输入。依据是空格符,当输入为空格键,TAB。
    那怎么获取一个包含空格的输入呢?可以使用下面的方

法:
import java.io.*;

public class Input{
public static void main(String[] args) throws

IOException{

BufferedReader br = new BufferedReader(new

InputStreamReader(System.in));
System.out.println("请输入一行文字,可以有空格:");

String str = br.readLine();

System.out.println(str);
}

}

    保存为Input.java文件后(注意这里,保存文件名必须

与类名保持一致)编译并运行,就可以实现输入:
I LOVE THIS GAME
I LOVE THIS GAME

    下面来分析这段代码,首先出现了一个
import java.io.*;
    这里表明我们将要使用的这个类是放在java.io下面的

某个包中的,*表示 所有内容,比如用到的BufferedReader

和InputStreamReader都是java.io中的类。

BufferedReader br = new BufferedReader(new

InputStreamReader(System.in));
    上节课我们使用的获得输入的方法中定义了一个
Scanner s = new Scanner(System.in);
    这里可能会让人觉得迷惑,我们知道“=”前面的是定

义了一个引用变量br,后面呢new表示新建了一个

BufferedReader对象,通过“=”把两者联系起来了,在上

面一句中,我们定义了一个BufferedReader类型的对象,这

个对象是以一个InputStreamReader 对象为基础建立的,而

这个对象是以System.in为基础建立起来的,然后可以通过

br来实现从键盘获取输入,System.in是我们从键盘获取输入

的工具。

    这样说可能很难理解,还是举个例子:
    我们修路,需要使用泥土,于是用铁锹来挖泥土,但是

我们不能用铁锹来运送泥土,于是用箩筐来运送,但是工程

很大,只用箩筐远远不够,于是我们用卡车来装送,这样效

率是不是很高了呢?
    BufferedReader就是这辆卡车,InputStreamReader就

是箩筐,System.in才是直接获得输入的铁锹。
String str = br.readLine();
    readLine()就是从键盘获取一行输入,可以包含空格的

,直到我们敲下回车之前的内容都会保存在str里面,从最

终的结果就很容易看出来了。

    再看看我们的main方法,发现后面跟了个throws

IOException。这是因为BufferedReader可能会出现一个异

常,异常是我们在以后会专门研究的东西,现在写出来只是

先熟悉一下,还是拿刚才的例子来解释这个异常:
    我们的卡车可能在路上要经过一个桥,桥的载重是5t,

但是我们的卡车却运了8t的东西,这个时候就会出现异常,

于是我们事先声明:我们的车在路上可能会出现异常,要用

的话出了问题就与我无关了。
    同样,我们的BufferedReader可能会出现问题,我们事

先在这里申明了,就如在烟盒上写个:吸烟有害健康一样。
    当然,一般来说出异常不是那么容易的,只要我们认真

处理,还是可以放心使用的。
    好的,那我们到底用什么获取输入呢,Scanner还是

BufferedReared?暂时还是用Scanner吧,看起来

BufferedReader 很麻烦,而且在后面还有一种情况很难获

得输入,但是我们要知道在后面有一个专门的章节来研究输

入输出,而所研究的内容都是BufferedReader的亲戚朋友,

而且今后我们还可以用这样的流来读取文件内容、把内容写

到文件里面去,这些都是Scanner做不到的。
    当然我们肯定不会满足于只是写一些东西让显示器显示

给我们,所以我们再研究一下用JAVA去做做算术吧,计算两

个数的和、差、积、商。

public class Count{
    public static void main(String[] args){
        int i = 9527;
        int j = 4527;
        int m = i - j;
        System.out.println(m);
        m = i*j;
        System.out.println(m);
        m=i+j;
        System.out.println(m);
        m=i/j;
        System.out.println(m);
    }
}
  




顶部
热点频道推荐: C/S开发| 数据库| WEB开发| 嵌入式| 项目管理|
 


操作系统 数据库 中间件 应用软件 管理软件 Web应用 AJAX Linux Web2.0 RIA 开源 SOA OSS SEO Vista SharePoint Windows Server Windows 2003 Windows 2008 IIS 动态语言 Windows IE7 Oracle Oracle11g office SQLServer Firefox Solaris Ubuntut 微软Google 资讯 博客 技术看板 英雄 图片 QQ 腾讯QQ 珊瑚虫QQ 金山上市 站点图 AJAX BI BPM CRM DNS Android SQL Server 2008 EAI Enterprise 2.0 ETL ERP Flash GPL3 Java j2me JavaEE LAMP mashups NTFS ODBC ODF OOP Outsourcing RIA RSS SOA UML Web2.0 Workflow XAML XML ZFS 备份 并发控制 并行计算 动态语言 多核计算 虚拟技术 CRM 数据仓库 虚拟化 Apollo Apache BizTalk DB2 Eclipse Excel Expression Flex3 Fedora7 Forefront FreeBSD Hibernate IE 7 IIS JavaFX JBoss Linspire live Maxthon Mobile 6.0 Mozilla MySQL office OneCare OpenOffice Solaris Oracle Oracle 11g SQL Server Opera Outlook Photoshop PostgreSQL PowerBuilder PowerShell Rational RHEL ROR Salesforce Server Core Solaris SugarCRM TFS Tomcat Ubuntut Vista VMWare VPC VSTS WCF WebLogic WPF Xandros Xen KDE GNOME 火狐浏览器 Gmail 邮箱 Exchange server AJAX BI BPM EAI ETL ERP CRM DNS Flash Java JavaEE j2me LAMP NTFS ODBC ODF OOP Outsourcing RIA RSS SOA SEO Web2.0 mash up Workflow XAML XML GPL 3协议 ZFS 备份 并行计算 多核 数据仓库 搜索 并发控制 并行计算 动态语言 虚拟化 虚拟技术 Enterprise Web2.0 软件技术资讯 操作系统 Windows Server 2008 Windows Server 2008专题 系统安全 IIS 虚拟机 Windows Linux 嵌入式操作系统 Vista专区 数据库/数据仓库 MySQL & PostgreSQL & Sybase Oracle 10g / 9i / 11g SQL SERVER DB2 中间件/SOA QQ2009下载 QQ QQ群 QQ炫铃 QQ视频 QQ好友 木马病毒 QQ2007 江民 瑞星 金山毒霸 协作办公 ODF/OOXML SharePoint office web应用 浏览器 SaaS/S+S Microsoft技术 操作系统软件数据库软件中间件软件

软件频道2008年3月精华 软件频道2008年2月精华 软件频道2008年1月精华 软件频道12月精华 软件频道11月精华 软件频道10月精华 软件频道9月精华 软件频道8月精华 软件频道7月精华 软件频道6月精华 软件频道5月精华 软件频道4月精华 软件频道3月精华 软件频道2月精华 软件频道1月精华


当前时区 GMT+8, 现在时间是 2008-9-8 12:43

  Powered by Discuz! 5.5.0 © 2001-2007 Comsenz Inc.
Processed in 0.069913 second(s), 7 queries

清除 Cookies - 联系我们 - ZDNetChina中文社区 - 无图版