admin 管理员组文章数量: 1087139
2024年3月28日发(作者:按什么键结束进程)
java的数据输入:从控制台输入数据
控制台是一种图形用户界面(GUI),其作用有二:一是
输入数据,二是显示输出结果。通过在控制台的输入输出,就
使用户能完成配置、监视、维护和故障排除等工作。
Java控制台虚拟机是否具有控制台取决于底层平台,还
取决于调用虚拟机的方式。如果虚拟机从一个交互式命令行开
始启动,且没有重定向标准输入和输出流,那么其控制台将存
在,并且通常连接到键盘并从虚拟机启动的地方显示。如果虚
拟机是自动启动的,例如由后台作业调度程序启动,那么它通
常没有控制台。
因此,对于普通微机里的java虚拟机来说,通常控制台
就是指的显示器和键盘,即:用显示器输出结果、用键盘输入
数据。由于输出相对比较简单,这里主要讨论输入数据的方式。
从控制台输入数据的方式有多种,jdk1.4以前主要是使用
标准输入流的方式,jdk5.0增加了使用Scanner类的方式,
jdk6.0又增加了使用Console类的方式。
Java
7.8.1 使用标准输入流的方式
标准输入流在7.6.2中已经讨论过,例7-13和例7-14的
数据就是从控制台(键盘)输入的,办法很简单,即使用标准输
入流获得。也可以将桥接至字符流,从
字符流中读入数据。
例7-22文件复制程序,本例中先使用InputStreamReader获取
标准输入流,再用字符流BufferedReader包装
InputStreamReader,以读取源文件名和目标文件名。
1:
import .*;
2:
public class Example7_22 {
3:
public static void main(String[ ] args) {
4:
try {
5:
BufferedReader br = new BufferedReader(new InputStreamReader());
6:
String srcFile = null, dstFile = null;
7:
("请输入源文件名:");
8:
srcFile = ne(); //用缓冲字符流获得源文件名
9:
("请输入目标文件名:");
10:
dstFile = ne(); //用缓冲字符流获得目标文件名
11:
byte[ ] data=new byte[1];
12:
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
13:
BufferedOutputStream bos = new BufferedOutputStream(new
FileOutputStream(dstFile));
14:
while((data) != -1) (data);
15:
();
16:
n("文件复制成功!");
17:
();
18:
();
19:
}catch(IOException e){
20:
tackTrace();
21:
}
22:
}
23:
}
可见利用标准输入流进行控制台输入的方式非常麻烦:如
果从键盘获取的是字符串,需要采用BufferedReader类来进行
处理;如果获取的是其他类型数据,需要手工进行转换;在读
取的过程中还必须捕获IOException。不过这是JDK1.4及更早
版本中从控制台读取数据唯一办法。
7.8.2 使用Scanner类的方式
从JDK5.0开始,包中增加了Scanner类,它是
一个可以使用正则表达式来解析基本类型和字符串的简单文
本扫描器。Scanner类从字面上讲是“扫描”的意思,它把给
定的字符串解析成Java的各种基本数据类型,用于分解字符
串的默认的分隔符是空格,也可以定制。其构造方法如表7-15。
表7-15 Scanner类的构造方法
方法
Scanner(File source)
Scanner(InputStream source)
Scanner(InputStream source, String
charsetName)
Scanner(Readable source)
Scanner(ReadableByteChannel source)
Scanner(ReadableByteChannel source,
String charsetName)
构造一个新的 Scanner,其值是从指定源扫描获得。
构造一个新的 Scanner,其值是从指定信道扫描获得。后
者指定了字符集。
描述
构造一个新的 Scanner,其值是从指定文件扫描获得。后
构造一个新的 Scanner,其值是从指定的输入流扫描获得。
后者指定了字符集。
Scanner(File source, String charsetName)
者指定了字符集。
版权声明:本文标题:java的数据输入:从控制台输入数据 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1711587813a601175.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论