欢迎来到天天文库
浏览记录
ID:50991794
大小:110.50 KB
页数:6页
时间:2020-03-08
《java的数据输入:从控制台输入数据.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
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文件复制程序,本例中先使用
3、InputStreamReader获取标准输入流System.in,再用字符流BufferedReader包装InputStreamReader,以读取源文件名和目标文件名。1: importjava.io.*;2: publicclassExample7_22{3: publicstaticvoidmain(String[]args){4: try{5: BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in
4、));6: StringsrcFile=null,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=newBuffe
5、redInputStream(newFileInputStream(srcFile));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:
6、 }catch(IOExceptione){20: e.printStackTrace();21: }22: }23: } 可见利用标准输入流进行控制台输入的方式非常麻烦:如果从键盘获取的是字符串,需要采用BufferedReader类来进行处理;如果获取的是其他类型数据,需要手工进行转换;在读取的过程中还必须捕获IOException。不过这是JDK1.4及更早版本中从控制台读取数据唯一办法。7.8.2使用Scanner类的方式从JDK5.0开始,java.util包中增加了Scanner类,它是一个可以使用正则表达
7、式来解析基本类型和字符串的简单文本扫描器。Scanner类从字面上讲是“扫描”的意思,它把给定的字符串解析成Java的各种基本数据类型,用于分解字符串的默认的分隔符是空格,也可以定制。其构造方法如表7-15。 表7-15Scanner类的构造方法方法描述Scanner(Filesource)Scanner(Filesource,StringcharsetName)构造一个新的Scanner,其值是从指定文件扫描获得。后者指定了字符集。Scanner(InputStreamsource)Scanner(InputStreamsourc
8、e,StringcharsetName)构造一个新的Scanner,其值是从指定的输入流扫描获得。后者指定了字符集。Scanner(Readablesource)构造一个新的Scanner,其值是从指定源扫描获得。Sca
此文档下载收益归作者所有