JAVA IO InputStream InputStreamReader BufferedReader

InputStream、OutputStream

处理字节流的抽象类,InputStream能从來源处读取一個一個byte,所以是最低级的。InputStream 是字节输入流的所有类的超类,一般我们使用它的子类,如FileInputStream等

InputStreamReader  OutputStreamWriter

处理字符流的抽象类,是字节流通向字符流的桥梁,它将字节流转换为字符流。它以较高级的方式,一次读取一个一个字符。

BufferedReader BufferedWriter

BufferedReader则是比InputStreamReader更高级,一次读取一行。

inputstream是一个字节一个字节的读取,每次读取都会执行一次IO,我们知道io的操作是很费时间的,这就必然会导致程序的效率,而bufferedreader很好的解决这一问题,它可以一次读取大量的数据,大大减少了io次数,效率也就上去了

三者层层递进,所以我们经常看到这样的使用:

FileInputStream fis=new FileInputStream("d://desktop//test.txt");

InputStreamReader isr=new InputStreamReader(fis,"utf8");

BufferedReader br=new BufferedReader(isr);

获取键盘的输入:

BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));

和Scanner差不多,但比Scanner更强大,因为Scanner无法获取带有空格,enter键的输入

时间: 2024-10-29 19:10:57

JAVA IO InputStream InputStreamReader BufferedReader的相关文章

【java】io流之字节输入流:java.io.InputStream类及子类java.io.FileInputStream

1 package 文件操作; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.IOException; 6 import java.io.InputStream; 7 8 public class TestInputStream { 9 public static void main(String[] args) throws IOException { 10 File file=new F

Java IO: InputStream

原文链接 作者: Jakob Jenkov 译者: 李璟([email protected]) InputStream类是Java IO API中所有输入流的基类.InputStream子类包括FileInputStream,BufferedInputStream,PushbackInputStream等等.参考Java IO概述这一小节底部的表格,可以浏览完整的InputStream子类的列表. Java InputStream例子 InputStream用于读取基于字节的数据,一次读取一个字

关于Java IO InputStream 的一点整理!

程序的开发当中一直在用文件的读写,但是对于java当中输入流以及输出流只是会用不理解,一直以来想搞清楚其,但是一直没有执行(悲剧),今天早上抽出半个小时通过JDK API1.6.0中文版帮助逐步的了解下字节输入流读取字节的方法: 下面就说说InputStream当中read().read(byte[]  b).read(byte[] b.int off .int len)的使用以及区别 一.read()方法: public static void inputStreamRead1() { try

Can not find a java.io.InputStream with the name [downloadFile] in the invocation stack.

1.错误描写叙述 八月 14, 2015 4:22:45 下午 com.opensymphony.xwork2.util.logging.jdk.JdkLogger error 严重: Exception occurred during processing request: Can not find a java.io.InputStream with the name [downloadFile] in the invocation stack. Check the <param name=

struts2文件下载出现Can not find a java.io.InputStream with the name的错误

今天在用struts2就行文件下载时出现如下错误: Servlet.service() for servlet default threw exception java.lang.IllegalArgumentException: Can not find a java.io.InputStream with the name [imageStream] in the invocation stack. Check the <param name="inputName">

Can not find a java.io.InputStream with the name [inputStream] in the invocation stack. Check the &lt;

最近项目需要用到上传下载,以前学jsp的时候直接用的是smartUpload,现在学的框架但是老师只是简单地教了框架的内容 对struts文件上传和下载没有涉及,没办法只能自己自学了!结果出现了上面的问题. 这个问题的根本原因网上都有说出来,但是没有给出的解决方案.原因是要返回的流为空,文件的路径有误导致文件的输入流为空! 所以最好在逻辑处理那块输出的你要下载文件的路径看是不是你要下载的路径!好了废话不多说哈! package com.iss.action; import java.io.Fil

struts2文件下载 出现Can not find a java.io.InputStream with the name的错误

成功代码: 前台界面jsp: <a style="text-decoration:none;" href="<%=path %>/main/frontNewsAction_downloadFile.action?fileName=<s:property value="fileTitle"/>">下载</a> Action文件:private String fileName;//get set方法 p

Error: Default interface methods are only supported starting with Android N (--min-api 24): java.io.InputStream org.apache.poi.sl.usermodel.ObjectShape.readObjectData()

项目运行的时候,如果报错 Error: Default interface methods are only supported starting with Android N (--min-api 24): java.io.InputStream org.apache.poi.sl.usermodel.ObjectShape.readObjectData() 解决方案: 在app的build.gradle文件中添加以下代码 apply plugin: 'com.android.applicat

Java IO流 之 BufferedReader

http://www.verejava.com/?id=16994684528313 package com.io2; import java.io.*; public class TestBufferedWriter { public static void main(String[] args) { Writer w; try { w = new FileWriter(new File("res/buffered.txt")); //缓存流 他的数据 是保存在 内存当中 Buffe