一丶 FileInputStream类:

Class FileInputStream
java.lang.Object
java.io.InputStream
java.io.FileInputStream
All Implemented Interfaces:
Closeable , AutoCloseable

public class FileInputStream
extends InputStream
A FileInputStream从文件系统中的文件获取输入字节。 什么文件可用取决于主机环境。
FileInputStream用于读取诸如图像数据的原始字节流。 要阅读字符串,请考虑使用FileReader 。

从以下版本开始:
JDK1.0
另请参见:
File , FileDescriptor , FileOutputStream , Files.newInputStream(java.nio.file.Path, java.nio.file.OpenOption…)

二丶 public FileInputStream(String name)

简介:

FileInputStream(String name)
通过打开与实际文件的连接来创建一个 FileInputStream ,该文件由文件系统中的路径名 name命名。

详情:

构造方法详细信息
FileInputStream
public FileInputStream(String name)
throws FileNotFoundException
通过打开与实际文件的连接创建一个FileInputStream文件,该文件由文件系统中的路径名name命名。 创建一个新的FileDescriptor对象来表示此文件连接。
首先,如果有一个安全管理器,它的checkRead方法被调用与name参数作为其参数。

如果命名文件不存在,则是一个目录而不是常规文件,或者由于某些其他原因无法打开读取,因此抛出一个FileNotFoundException 。

参数
name - 与系统相关的文件名。
异常
FileNotFoundException - 如果文件不存在,是一个目录而不是常规文件,或者由于某些其他原因无法打开阅读。
SecurityException - 如果安全管理器存在,并且其 checkRead方法拒绝对该文件的读取访问。
另请参见:
SecurityManager.checkRead(java.lang.String)

三丶 InputStream 类

org.omg.CORBA_2_3.portable
Class InputStream
java.lang.Object
java.io.InputStream
org.omg.CORBA.portable.InputStream
org.omg.CORBA_2_3.portable.InputStream
All Implemented Interfaces:
Closeable , AutoCloseable

public abstract class InputStream
extends InputStream
InputStream提供从流中读取所有映射的IDL类型。 它扩展了org.omg.CORBA.portable.InputStream。 该类定义了为CORBA 2.3添加的新方法。
从以下版本开始:
JDK1.2
另请参见:
InputStream

四丶 InputStream.read(数组)

得到数组的长度

byte[]  b = new byte[1024];
length= inputStream.read(b)

有值就会返回数组长度,没值就会返回-1

五丶 OutputStream 类

compact1, compact2, compact3
java.io
Class OutputStream
java.lang.Object
java.io.OutputStream
All Implemented Interfaces:
Closeable , Flushable , AutoCloseable
已知直接子类:
ByteArrayOutputStream , FileOutputStream , FilterOutputStream , ObjectOutputStream , OutputStream , PipedOutputStream

public abstract class OutputStream
extends Object
implements Closeable, Flushable
这个抽象类是表示字节输出流的所有类的超类。 输出流接收输出字节并将其发送到某个接收器。
需要定义OutputStream子类的应用OutputStream必须至少提供一个写入一个字节输出的方法。

从以下版本开始:
JDK1.0
另请参见:
BufferedOutputStream , ByteArrayOutputStream , DataOutputStream , FilterOutputStream , InputStream , write(int)

五丶 OutputStream.write()

简介

void write(byte[] b, int off, int len)
从指定的字节数组写入 len个字节,从偏移 off开始输出到此输出流。

详情

public void write(byte[] b,
int off,
int len)
throws IOException
从指定的字节数组写入len字节,从偏移off开始输出到此输出流。 write(b, off, len)的一般合同是数组b中的一些字节按顺序写入输出流; 元素b[off]是写入的第一个字节, b[off+len-1]是此操作写入的最后一个字节。
该write的方法OutputStream调用写出在每个字节中的一个参数的写入方法。 鼓励子类覆盖此方法并提供更有效的实现。

如果b是null ,则抛出NullPointerException 。

如果off为负数,或len为负数,或off+len大于数组b的长度,则抛出IndexOutOfBoundsException 。

参数
b - 数据。
off - 数据中的起始偏移量。
len - 要写入的字节数。
异常
IOException - 如果发生I / O错误。 特别地,如果输出流关闭,则抛出IOException 。

六丶 OutputStream.close()

简介

close()
关闭此输出流并释放与此流相关联的任何系统资源。

详情

public void close()
throws IOException
关闭此输出流并释放与此流相关联的任何系统资源。 close的一般合同是关闭输出流。 封闭流不能执行输出操作,无法重新打开。
该close的方法OutputStream什么都不做。

Specified by:
close在界面 Closeable
Specified by:
close在界面 AutoCloseable
异常
IOException - 如果发生I / O错误。

七丶 InputStream.close()

同上

八丶 代码解析

//要下载哪一个文件,获取文件名String  fileName = request.getParameter("fileName");fileName = new String(fileName.getBytes("iso-8859-1"), "utf-8");System.out.println("fileName:"+fileName);//找到要下载的这个文件路径 如果项目部署在安装的Tomcat下//F:\\online\\servlet\\teach\\day01\\soft\\apache-tomcat-7.0.52\\webapps\\Servlet06\\uploadString   path = getServletContext().getRealPath("/upload");System.out.println("path:"+path);System.out.println("File.separator:"+File.separator);//文件名需要根据不同的浏览器进行转码,否则如果下载的文件,文件名是中文的话,就好出问题//attachment:通知浏览器以下载的形势打开这个页面response.setHeader("Content-Disposition", "attachment;fileName="+getStr(request,fileName));//输入流 InputStream  inputStream = new FileInputStream(path+File.separator+fileName);//响应输出流OutputStream  outputStream = response.getOutputStream();int length = 0;//桶byte[]  b = new byte[1024];while ((length= inputStream.read(b)) != -1) {outputStream.write(b, 0, length);}outputStream.close();inputStream.close();}

Java — InputStream.read(),response.getOutputStream(),OutputStream().write【IO流】相关推荐

  1. java inputstream write_将Java InputStream的内容写入OutputStream的简便方法

    回答(21) 2 years ago 如果您使用的是Java 7,那么Files(在标准库中)是最好的方法: /* You can get Path from file also: file.toPa ...

  2. 黑马毕向东Java课程笔记(day20-1——20-17)IO流:File类及相关方法、递归、递归的相关练习、Properties、PrintWriter类与PrintStream类、合并流与切割流

    1.File类概述   File是文件和目录路径名的抽象表示形式. 用来将文件或者文件夹封装成对象,方便对文件与文件夹的属性信息进行操作.   前面说到的"流",它只能操作数据,想 ...

  3. 【程序员养成之路】Java基础篇 8-流进流出的IO流(二)

    以下内容若有误,欢迎私信我或在下方留言,谢谢^_− 目录 IO流(二) 1.特殊操作流 1.1 标准流 1.2 打印流 1.3 对象序列化流 1.4 Properties 拓展1:比较字节流和字节缓冲 ...

  4. Java基础(二):集合、IO流(Zip压缩输入/输出流等)、File文件类、反射、枚举

    Java基础(一):编译和解释.数据类型.变量作用域.String常用方法.数组.面向对象.异常 Java基础(二):集合.IO流(Zip压缩输入/输出流等).File文件类.反射.枚举 Java异常 ...

  5. Educoder–Java高级特性(第一章)- IO流【笔记+参考代码】

    Educoder–Java高级特性(第一章)- IO流[笔记+参考代码] 第一关 1.下列关于字节和字符的说法正确的是(BC) A.字节 = 字符 + 编码 B.字符 = 字节 + 编码 C.字节 = ...

  6. java 弹出另存为_java如何实现 io流传输过来的文件,提示另存为弹出窗口?

    java如何实现 io流传输过来的文件,提示另存为弹出窗口? mip版  关注:166  答案:6  悬赏:0 解决时间 2021-01-24 22:00 已解决 2021-01-24 11:06 最 ...

  7. Java生成二维码并以IO流的形式返回给前端展示(不需写入服务器),以及下载二维码图片

    目录 场景 方案分析 第一步--引入依赖 第二步--编写工具类 第三步--编写API接口 第四步--访问测试 第五步--下载图片 场景 最近笔者做的项目中,有一个需求: 在系统中生成一个二维码,用户保 ...

  8. 第三次学JAVA再学不好就吃翔(part101)--IO流

    学习笔记,仅供参考 文章目录 IO流 IO流的概述及其分类 FileInputStream 构造方法 成员方法 举个例子 FileOutputStream 构造方法 成员方法 举个例子 IO流 IO流 ...

  9. java 输入流可以合并吗_Java 使用IO流实现大文件的分割与合并实例详解

    java 使用IO流实现大文件的分割与合并 文件分割应该算一个比较实用的功能,举例子说明吧比如说:你有一个3G的文件要从一台电脑Copy到另一台电脑, 但是你的存储设备(比如SD卡)只有1G ,这个时 ...

  10. Java基础知识(三十一)IO流(二) File类、递归、IO流基础

    目录 一. File类 1.File: 2.构造方法: 3.创建功能 4.删除功能 5.  重命名功能 6.判断功能 7.基本获取功能 8.高级获取功能 9.需求: 二.递归 1.概述: 2.   递 ...

最新文章

  1. R语言dplyr包arrage函数排序dataframe实战:单列排序、多列排序、自定义排序
  2. Selenium3+python自动化009- 多选框
  3. MySQL慢查询日志总结
  4. 在Java中异步编程,同事非要用rxJava,被我一顿吐槽!
  5. VI编辑器的操作模式
  6. Ubuntu1404 开启定时任务 crontab
  7. 通化红灯_我们如何构建廉价,可扩展的架构来对世界进行卡通化!
  8. 小爱同学100个奇葩回复_小米小爱音箱Pro开箱评测,看到的不仅是全面升级更是小米loT的高速发展...
  9. 11 java基础之继承:区分子类方法中变量的三种变量
  10. 远程计算机如何访问本地,远程计算机的本地Web服务访问(本地主机与IP地址)...
  11. Mysql 根据经纬度计算距离
  12. 整合+策略:微网通联的GMP平台如何帮助企业搭建统一智慧通信架构
  13. 顶级程序员书单系列二:《编码-隐匿在计算机软硬件背后的语言》
  14. 第八届中国大学计算机设计大赛,2015年(第八届)中国大学生计算机设计大赛.PDF...
  15. 2022.12.23-Python100day-day05-面向对象编程
  16. Audit login 与 Audit logout
  17. MATLAB计算黎曼积分曲线围成的面积
  18. 查找SAPParameterID_SAP刘梦_新浪博客
  19. [Course] Advanced Computer Programming, Homework, week 2
  20. 黑客零起步——菜鸟必看!

热门文章

  1. yum 崩溃的解决方法
  2. 前端简单h5播放器的制作
  3. WPF Rendering 2(硬件加速、软件加速)
  4. 28岁女博士生被骂“学术媛”,曾以数学建模专业第一名毕业,获牛津数学PhD offer...
  5. 字节跳动教育裁员处理还是挺仗义的!
  6. 【小知识】Softmax函数与交叉熵
  7. 【数据集】机器学习数据集汇总(附下载地址)
  8. 分享 | 绝对值得一看的深度学习三巨头之一的Yoshua Bengio清华大学讲座视频
  9. 2020,新年快乐!
  10. 遗传优化算法优化LSTM结构-准确率