首页 / JAVA / JAVA——IO流 篇四
JAVA——IO流 篇四
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JAVA——IO流 篇四,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3114字,纯文字阅读大概需要5分钟。
内容图文
![JAVA——IO流 篇四](/upload/InfoBanner/zyjiaocheng/732/969a0b52f92646e789113c3856b871ba.jpg)
在java.lang包中有System类,此类不能被实例化,但是提供了对应的一些系统属性信息和系统操作:提供了包括标准输入,标准输出和错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法。
下面主要介绍其标准输入、标准输出流。
System.in:对应的是标准输入设备 – 键盘。
System.out:对应的是标准输出设备 – 控制台。
读取键盘输入的一个字符:
private static void readKey() throws Exception
{
//获取标准输入流对象
InputStream inputStream = System.in;
//读取输入字符
int ch = inputStream.read();//阻塞式方法
System.out.println(ch);
ch = inputStream.read();
System.out.println(ch);
ch = inputStream.read();
System.out.println(ch);
}
当输入a后回车发现输出结果如下:
a
97
13
10
经查看ASCII码表:’\r’ ascII码为13, ‘\n’ ascII码为10。这是windows系统的回车键导致的,具体可参考回车换行的不同一文。
//查看 \r、\n ASCII对应的十进制数
System.out.println((int)'\r');
System.out.println((int)'\n');
在这里还需要注意的问题便是此流不用关闭,这是因为此流程序启动时候创建,退出时自动关闭,而且仅此一个对象,如果关闭,无法再次创建。
private static void readKey() throws Exception
{
//获取标准输入流对象
InputStream inputStream = System.in;
//读取输入字符
int ch = inputStream.read();//阻塞式方法
System.out.println(ch);
//关闭标准输入流
inputStream.close();
//获取标准输入流对象
InputStream inputStream1 = System.in;
//读取输入字符
ch = inputStream1.read();
System.out.println(ch);
}
程序运行后会抛出以下异常:Exception in thread “main” java.io.IOException: Stream closed
获取用户键盘录入的数据, 如果用户输入的是over,结束键盘录入
public static void readKeyOver() throws IOException
{
//创建StringBuilder对象
StringBuilder stringBuilder = new StringBuilder();
//创建标准输入流对象
InputStream in = System.in;
boolean falg = true;
while(falg)
{
//读取一个字节
int ch = in.read();
//判断读取到的字节
if(ch == '\r')
{
continue;
}
if(ch == '\n')
{
System.out.println(stringBuilder.toString());
//判断读取到的内容是否是over
if(stringBuilder.toString().equals("over"))
{
break;
}
//清空stringBuilder
stringBuilder.delete(0, stringBuilder.length());
}else
{
//stringBuilder的末尾拼接字节
stringBuilder.append(ch);
}
}
}
上述代码是通过判断回车来判断每行是否输入完毕的。如果能通过一种方式把字节流转换成字符流,然后通过字符流缓冲区读取一行的readLine()方法来实现,经过查看API发现InputStreamReader类具有字节流转换字符流的功能。则可修改上述代码如下:
public static void readKeyOver() throws IOException
{
//获取标准输入流对象(获取键盘输入内容)
InputStream in = System.in;
//将输入字节流转化为输入字符流对象
InputStreamReader inputStreamReader = new InputStreamReader(in);
//创建输入字符流缓冲区对象
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String lineString;
//读取输入的每一行数据
while((lineString = bufferedReader.readLine()) != null)
{
//判断每行的数据是否为over
if(lineString.equals("over"))
{
break;//跳出循环
}
System.out.println(lineString);
}
}
System.out:“标准”输出流。此流已打开并准备接受输出数据。通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。
private static void printConsole() throws IOException
{
//获取标准输出流对象
OutputStream outputStream = System.out;
//将字节数据写入输出流
outputStream.write("aaa".getBytes());
}
内容总结
以上是互联网集市为您收集整理的JAVA——IO流 篇四全部内容,希望文章能够帮你解决JAVA——IO流 篇四所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。