欢迎来到天天文库
浏览记录
ID:8926560
大小:150.00 KB
页数:6页
时间:2018-04-12
《java的数据输入:从控制台输入数据》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、java的数据输入:从控制台输入数据Java控制台是一种图形用户界面(GUI),其作用有二:一是输入数据,二是显示输出结果。通过在控制台的输入输出,就使用户能完成配置、监视、维护和故障排除等工作。Java控制台虚拟机是否具有控制台取决于底层平台,还取决于调用虚拟机的方式。如果虚拟机从一个交互式命令行开始启动,且没有重定向标准输入和输出流,那么其控制台将存在,并且通常连接到键盘并从虚拟机启动的地方显示。如果虚拟机是自动启动的,例如由后台作业调度程序启动,那么它通常没有控制台。因此,对于普通微机里的java虚拟机来说,通常控制台就是指的显示器和键盘,即:用显
2、示器输出结果、用键盘输入数据。由于输出相对比较简单,这里主要讨论输入数据的方式。从控制台输入数据的方式有多种,jdk1.4以前主要是使用标准输入流的方式,jdk5.0增加了使用Scanner类的方式,jdk6.0又增加了使用Console类的方式。7.8.1使用标准输入流的方式标准输入流在7.6.2中已经讨论过,例7-13和例7-14的数据就是从控制台(键盘)输入的,办法很简单,即使用标准输入流System.in获得。也可以将System.in桥接至字符流,从字符流中读入数据。 例7-22文件复制程序,本例中先使用InputStreamReader获取标
3、准输入流System.in,再用字符流BufferedReader包装InputStreamReader,以读取源文件名和目标文件名。1: importjava.io.*;2: publicclassExample7_22{3: publicstaticvoidmain(String[]args){4: try{5: BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));6: StringsrcFile=null,
4、dstFile=null;7: System.out.print("请输入源文件名:");8: srcFile=br.readLine();//用缓冲字符流获得源文件名9: System.out.print("请输入目标文件名:");10: dstFile=br.readLine();//用缓冲字符流获得目标文件名11: byte[]data=newbyte[1];12: BufferedInputStreambis=newBufferedInputStream(newFileInputStream(srcFil
5、e));13: BufferedOutputStreambos=newBufferedOutputStream(newFileOutputStream(dstFile));14: while(bis.read(data)!=-1)bos.write(data);15: bos.flush();16: System.out.println("文件复制成功!");17: bis.close();18: bos.close();19: }catch(IOExceptione){20: e.printStackTrace();21
6、: }22: }23: } 可见利用标准输入流进行控制台输入的方式非常麻烦:如果从键盘获取的是字符串,需要采用BufferedReader类来进行处理;如果获取的是其他类型数据,需要手工进行转换;在读取的过程中还必须捕获IOException。不过这是JDK1.4及更早版本中从控制台读取数据唯一办法。7.8.2使用Scanner类的方式从JDK5.0开始,java.util包中增加了Scanner类,它是一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。Scanner类从字面上讲是“扫描”的意思,它把给定的字符串解析成Java的各
7、种基本数据类型,用于分解字符串的默认的分隔符是空格,也可以定制。其构造方法如表7-15。 表7-15Scanner类的构造方法方法描述Scanner(Filesource)Scanner(Filesource,StringcharsetName)构造一个新的Scanner,其值是从指定文件扫描获得。后者指定了字符集。Scanner(InputStreamsource)Scanner(InputStreamsource,StringcharsetName)构造一个新的Scanner,其值是从指定的输入流扫描获得。后者指定了字符集。Scanner(Read
8、ablesource)构造一个新的Scanner,其值是从指定源扫描获得。Sca
此文档下载收益归作者所有