1. * 字节输入流(InputStream):所有字节输入流的父类
  2. * 所有子类共性方法:
  3. * int read():从输入流中读取数据的下一个字节
  4. * int read(byte[] b):从输入流中拂去一定数量的字节,并将其存储在缓冲区数组b
  5. * void close() 关闭 此输入流并释放该流 关联的所有系统资源
  6. * java.io.FileInputStream extends InputStream
  7. * FileInputStream:文件字节输入流
  8. * 作用:把硬盘文件中的数据,读取到内存中使用
  9. *
  10. * 构造方法:
  11. * FileInputStream(String name):
  12. * FileInputStream(File file):
  13. * 参数:读取文件的数据源
  14. * String name:文件路径
  15. * File file:文件
  16. * 构造方法的作用:
  17. * 1.会创建一个FileInputStream对象
  18. * 2.会把FileInputStream对象指定构造方法中要读取的文件
  19. * 读取数据的原理(硬盘-->内存):
  20. * java程序-->os-->os读取数据的方法-->读取文件
  21. *
  22. * 字节输入流的使用步骤(重点):
  23. * 1.创建FileInputStream对象,构造方法中绑定要读取的数据源
  24. * 2.使用FileInputStream对象中的方法read读取文件
  25. * 3.释放资源
  26. *
  27. * 字节流练习(文件复制):
  28. *
  29. *
  30. *
  31. */
  32. public static void main(String[] args) throws IOException {
  33. //1.创建输入流
  34. FileInputStream fis = new FileInputStream("D:\\1.jpg");
  35. //2.创建输出流
  36. FileOutputStream fos = new FileOutputStream("E:\\1.jpg");
  37. //3.边读边写
  38. int len = 0;
  39. while((len = fis.read())!=-1){
  40. //3.1写入
  41. System.out.println(len);
  42. }
  43. //先关闭写,再关闭读
  44. fos.close();
  45. fis.close();
  46. }
  47. /**
  48. * 字符流:
  49. * 字符输入流:java.io.Reader,字符输入流的最顶层的父类,定义了共性成员方法,是抽象类
  50. * 共性成员方法:
  51. * int read():读取当个字符
  52. * int read(char[] cbuf):一次性读取多个字符,将字符读入数组
  53. * void close() 关闭该流并释放与关联的所有资源
  54. *
  55. * java.io.FileReader extends InptStreamReader extends Reader
  56. * FileReader:文件字符输入流
  57. * 作用:把硬盘文件中的数据以字符的方式读取到内存中
  58. * 构造方法:
  59. * FileReader(String fileName):
  60. * FileReader(File file):
  61. * 参数:
  62. * String fileName:文件路径
  63. * File file:文件
  64. * FileReader构造方法的作用:
  65. * 1.创建一个FileReader对象
  66. * 2.会把FileReader对象指向我们要读取的文件
  67. * 字符输入流步骤:
  68. * 1.创建FileReader对象,构造方法中邦绑定要读取的数据源
  69. * 2.使用FileReader对象中的方法read读取文件
  70. * 3.释放资源
  71. * 字符输出流:
  72. * java.io.Writer:所有字符输出流的父类
  73. * 共性成员方法:
  74. * void write(int c):写入单个字符
  75. * void write(char[] cbuf):写入字符数组
  76. * abstract void write(char[] cbuf,int off,int len):写入字符数组的某一部分,off数组的开始索引,len写的字符个数
  77. * void write(String str):写入字符串
  78. * void write(String str,int off,int len):写入字符串中的某一部分,off开始位置,len写的个数
  79. * void flush():刷新该流的缓冲
  80. * void close():关闭此流,但要先刷新它
  81. *
  82. * java.io.FileWriter extends OutputStreamWrite extends Writer
  83. * FileWriter:文件字符输出流:
  84. * 作用:把内存中字符数组写入到文件中
  85. * 构造方法:
  86. * FileWriter(File file):根据给定的File对象构造一个FileWriter对象
  87. * FileWriter(String fileName):根据给定的文件名构造一个FileWriter对象
  88. * 参数:写入数据的目的地
  89. * String FileName:文件的路径
  90. * File file:文件
  91. * 构造方法的作用:
  92. * 1.会创建FileWriter对象
  93. * 2.会根据构造方法中传递的文件/文件路径创建文件
  94. * 3.会把FileWriter对象指向建好的文件
  95. * 字符输出流的使用步骤(重点):
  96. * 1.创建FileWriter对象,构造方法中绑定要写入数据的目的地
  97. * 2.使用FileWriter中的write把数据写入到内存缓冲区中(字符转换为字节的过程)
  98. * 3.使用FileWriter中的方法flush把内存缓冲去中的数据刷新到文件中
  99. * 4.释放资源(会先把内存缓冲区中的数据刷新到文件中)
  100. * 写数据的其他方法:
  101. * void write(char[] cbar):写入字符数组
  102. * abstract void write(char[] cbuf,int off,int len):写入字符串数组的某一部分,off开始,len个数
  103. * void write(String str):写入字符串
  104. * void write(String str,int off,int len):写入字符串的某一部分,off字符串的开始索引,len写的字符个数
  105. * 续写和换行:
  106. * 续写:使用两个参数的构造方法FileWriter(String fileName, boolean append)
  107. * 换行:
  108. * windows:\r\n
  109. * linux:/n
  110. * mac:/r
  111. *
  112. * JDK1.7前:使用try catch finally 处理流中的异常
  113. * 格式:
  114. * try{
  115. * 可能出现异常代码
  116. * }catch{
  117. * 异常的处理逻辑
  118. * }finally{
  119. * 一定会执行代码
  120. * }
  121. * JDK7的新特性:
  122. * 在try的后边可以增加一个(),在括号中可以定义流对象
  123. * 那么这个流对象的作用域就在try中有效
  124. * try中的代码执行完毕自动把流对象释放,不用finally
  125. * 格式:
  126. * try(定义流对象,可以定义多个){
  127. * 可能出现异常代码
  128. * }catch(异常类变量 变量名){
  129. * 异常的处理逻辑
  130. * }
  131. *
  132. * JDK9的新特性:
  133. * try的前边可以定义流对象
  134. * 在try后边()中可以直接引入流对象的名称(变量名)
  135. * 在try代码执行完毕后,流对象也可以释放,不用写finally
  136. * 格式:
  137. * A a = new a();
  138. * B b = new b();
  139. * try(a;b){
  140. * 可能出现异常代码
  141. * }catch{
  142. * 处理方式
  143. * }
  144. *
  145. */
  146. }

java_IO流(输入流)的更多相关文章

  1. Java_IO流_File类配合使用(其中用到了递归)

    第一:Java File类的功能非常强大,利用Java基本上可以对文件进行所有的操作.以下对Java File文件操作以及常用方法进行简单介绍 案例1:遍历出指定目录下的文件夹,并输出文件名 stat ...

  2. java_IO流之 NIO

    NIO 定义 即新IO,在JDK1.4的java.nio.*包中引入,其目的在于提高速度. 在Java1.4之前的I/O系统中,提供的都是面向流的I/O系统,系统一次一个字节地处理数据,一个输入流产生 ...

  3. java_IO流

    IO流概述及分类 Reader  InputStream  OutputStream  Writer都是Object的直接子类 字节流: 字节输入流 InputStream(抽象类) |---File ...

  4. Java_IO流_抽象类

    一.   概念 流动,从一端流向另一端,源头与目的地 以程序为中心,程序与 数组/文件/网络连接/数据库, 二.   io流分类 流向:输入流与输出流 数据 :字节楼:二进制,所有文件都可以操作,包括 ...

  5. Java_IO流输入输出

    第三章 输入输出 一.I/O Input/Output 二.File 用途:对文件和目录进行常规操作(除文件读写操作外). 方法:exists():判断文件或目录是否存在 isFile():判断是否是 ...

  6. java_IO流(输出流)

    ** * io流: * 输入流:硬盘输入到内存 字节/字符输入流 * 输出流:内存输出到硬盘 字节/字符输入流 * 字节流:一切数据都是字节存储(二进制) * 字节输出流(OutputStream): ...

  7. java_IO流小结

    字符流和字节流的主要区别: 1.字节流读取的时候,读到一个字节就返回一个字节:  字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在UTF-8码表中是3个字节)时.先去查指定的编码表,将 ...

  8. Java_IO流实验

    实验题目链接:Java第09次实验(IO流) 0. 字节流与二进制文件 我的代码 package experiment.io; import java.io.DataInputStream; impo ...

  9. java_IO流读取本地文件

    package com.ht.util; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoun ...

随机推荐

  1. thinkphp 表单合法性检测

    在处理表单提交的数据的时候,建议尽量采用Think\Model类提供的create方法首先进行数据创建,然后再写入数据库. 大理石平台厂家 create方法在创建数据的同时,可以进行更为安全的处理操作 ...

  2. Delphi做异型窗体PNG透明

    {*******************************************************}{ }{ 异形窗口 }{ }{ 2009.12.4 王 锐 }{ }{******** ...

  3. (转)JAVA国际化

    转:http://www.cnblogs.com/jjtech/archive/2011/02/14/1954291.html 国际化英文单词为:Internationalization,又称I18N ...

  4. [转]如何升级gcc版本

    首先需要准备需要材料:gcc4.4.2版需要安装gmp4.2.0+和mpfr2.3.0+,到GMP的网站(http://gmplib.org/)上下载gmp-4.3.1.tar.gz 和mprf的网站 ...

  5. Appium 环境配置遇到的坑

    一般基础的python路径,sdk等网上都有教程,在这里不多说. 一般可能没有的包:opencv4nodejs ,ffmpeg,bundletoo,jar 1.opencv4nodejs 使用npm安 ...

  6. jpa现有接口方法说明 (转https://www.cnblogs.com/rulian/p/6557471.html)

    一.接口方法整理速查 下表针对于简单查询,即JpaRepository接口(继承了CrudRepository接口.PagingAndSortingRepository接口)中的可访问方法进行整理.( ...

  7. Spring Cloud Feign设计原理

    什么是Feign? Feign 的英文表意为“假装,伪装,变形”, 是一个http请求调用的轻量级框架,可以以Java接口注解的方式调用Http请求,而不用像Java中通过封装HTTP请求报文的方式直 ...

  8. 使用idea从svn检出项目

    1.创建空的工程 2. 3. 编辑项目进行提交svn服务器进行自动整合

  9. D3.js的基础部分之数组的处理 集合(Set)(v3版本)

    数组的处理 之 集合(set) 集合(Set)是数学中常用的概念,表示具有某种特定性质的事物的总体.集合里的项叫做元素.集合的相关方法有:   d3.set([array]) //使用数组来构建集合, ...

  10. FaceNet pre-trained模型以及FaceNet源码使用方法和讲解

    Pre-trained models Model name LFW accuracy Training dataset Architecture 20180408-102900 0.9905 CASI ...