*   字节输入流(InputStream):所有字节输入流的父类
  *      所有子类共性方法:
  *          int read():从输入流中读取数据的下一个字节
  *          int read(byte[] b):从输入流中拂去一定数量的字节,并将其存储在缓冲区数组b中
  *          void close() 关闭 此输入流并释放该流 关联的所有系统资源
  *      java.io.FileInputStream extends InputStream
  *      FileInputStream:文件字节输入流
  *      作用:把硬盘文件中的数据,读取到内存中使用
  *
  *      构造方法:
  *          FileInputStream(String name):
  *          FileInputStream(File file):
  *          参数:读取文件的数据源
  *              String name:文件路径
  *              File file:文件
  *          构造方法的作用:
  *              1.会创建一个FileInputStream对象
  *              2.会把FileInputStream对象指定构造方法中要读取的文件
  *      读取数据的原理(硬盘-->内存):
  *          java程序-->os-->os读取数据的方法-->读取文件
  *
  *      字节输入流的使用步骤(重点):
  *          1.创建FileInputStream对象,构造方法中绑定要读取的数据源
  *          2.使用FileInputStream对象中的方法read读取文件
  *          3.释放资源
  *
  *      字节流练习(文件复制):
  *
  *
  *
  */
 public static void main(String[] args) throws IOException {
     //1.创建输入流
     FileInputStream fis = new FileInputStream("D:\\1.jpg");
     //2.创建输出流
     FileOutputStream fos = new FileOutputStream("E:\\1.jpg");
     //3.边读边写
     int len = 0;
     while((len = fis.read())!=-1){
         //3.1写入
         System.out.println(len);
     }
     //先关闭写,再关闭读
     fos.close();
     fis.close();
     }
 /**
  * 字符流:
  * 字符输入流:java.io.Reader,字符输入流的最顶层的父类,定义了共性成员方法,是抽象类
  *  共性成员方法:
  *      int read():读取当个字符
  *      int read(char[] cbuf):一次性读取多个字符,将字符读入数组
  *      void close() 关闭该流并释放与关联的所有资源
  *
  *  java.io.FileReader extends InptStreamReader extends Reader
  *  FileReader:文件字符输入流
  *  作用:把硬盘文件中的数据以字符的方式读取到内存中
  *  构造方法:
  *      FileReader(String fileName):
  *      FileReader(File file):
  *      参数:
  *          String fileName:文件路径
  *          File file:文件
  *      FileReader构造方法的作用:
  *          1.创建一个FileReader对象
  *          2.会把FileReader对象指向我们要读取的文件
  *      字符输入流步骤:
  *          1.创建FileReader对象,构造方法中邦绑定要读取的数据源
  *          2.使用FileReader对象中的方法read读取文件
  *          3.释放资源
  * 字符输出流:
  * java.io.Writer:所有字符输出流的父类
  * 共性成员方法:
  *  void write(int c):写入单个字符
  *  void write(char[] cbuf):写入字符数组
  *  abstract void write(char[] cbuf,int off,int len):写入字符数组的某一部分,off数组的开始索引,len写的字符个数
  *  void write(String str):写入字符串
  *  void write(String str,int off,int len):写入字符串中的某一部分,off开始位置,len写的个数
  *  void flush():刷新该流的缓冲
  *  void close():关闭此流,但要先刷新它
  *
  * java.io.FileWriter extends OutputStreamWrite extends Writer
  * FileWriter:文件字符输出流:
  * 作用:把内存中字符数组写入到文件中
  * 构造方法:
  *  FileWriter(File file):根据给定的File对象构造一个FileWriter对象
  *  FileWriter(String fileName):根据给定的文件名构造一个FileWriter对象
  *  参数:写入数据的目的地
  *      String FileName:文件的路径
  *      File file:文件
  *  构造方法的作用:
  *      1.会创建FileWriter对象
  *      2.会根据构造方法中传递的文件/文件路径创建文件
  *      3.会把FileWriter对象指向建好的文件
  *  字符输出流的使用步骤(重点):
  *      1.创建FileWriter对象,构造方法中绑定要写入数据的目的地
  *      2.使用FileWriter中的write把数据写入到内存缓冲区中(字符转换为字节的过程)
  *      3.使用FileWriter中的方法flush把内存缓冲去中的数据刷新到文件中
  *      4.释放资源(会先把内存缓冲区中的数据刷新到文件中)
  *  写数据的其他方法:
  *     void write(char[] cbar):写入字符数组
  *     abstract void write(char[] cbuf,int off,int len):写入字符串数组的某一部分,off开始,len个数
  *     void write(String str):写入字符串
  *     void write(String str,int off,int len):写入字符串的某一部分,off字符串的开始索引,len写的字符个数
  *  续写和换行:
  *  续写:使用两个参数的构造方法FileWriter(String fileName, boolean append)
  *  换行:
  *      windows:\r\n
  *      linux:/n
  *      mac:/r
  *
  *  JDK1.7前:使用try catch finally 处理流中的异常
  *  格式:
  *      try{
  *          可能出现异常代码
  *      }catch{
  *          异常的处理逻辑
  *      }finally{
  *          一定会执行代码
  *      }
  *  JDK7的新特性:
  *      在try的后边可以增加一个(),在括号中可以定义流对象
  *      那么这个流对象的作用域就在try中有效
  *      try中的代码执行完毕自动把流对象释放,不用finally
  *    格式:
  *      try(定义流对象,可以定义多个){
  *          可能出现异常代码
  *      }catch(异常类变量 变量名){
  *          异常的处理逻辑
  *      }
  *
  *  JDK9的新特性:
  *      try的前边可以定义流对象
  *      在try后边()中可以直接引入流对象的名称(变量名)
  *      在try代码执行完毕后,流对象也可以释放,不用写finally
  *  格式:
  *      A a = new a();
  *      B b = new b();
  *      try(a;b){
  *          可能出现异常代码
  *      }catch{
  *          处理方式
  *      }
  *
  */
 }

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. git 安装 使用过程遇到的问题

      git add "文件名"->git commit -m 'add' ->>git push origin develop 1.git基础之切换分支 选择gi ...

  2. 拾遗:Perl 基础语法

    Perl 常用的命令行参数 -i:将处理结果直接写入文件,可以通过 -i.bak 或 -i"/tmp/orig_*" 等形式,在修改之前进行备份 -e:启用 perl 的命令行模式 ...

  3. 剑指offer——37复杂链表的复制

    题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head.(注意,输出结果中请不要返回参数中的节点引用,否 ...

  4. 解决ios10及以上Safari双击和双指缩放无法禁止的问题

    移动端web缩放有两种: 1.双击缩放: 2.双指手势缩放. 在iOS 10以前,iOS和Android都可以通过一行meta标签来禁止页面缩放 <meta content="widt ...

  5. NodeJS学习笔记之Connect中间件应用实例

    一,开篇分析 大家好哦,大熊君又来了,昨天因为有点个人的事没有写博客,今天又出来了一篇,这篇主要是写一个记事本的小应用,前面的文章, 我也介绍过“Connect”中间件的使用以及“Mongodb”的用 ...

  6. Python匹马行天下之面向对象

    概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向过程编程最易被初学 ...

  7. Guarded Suspention 要等到我准备好

    线程在运行过程中需要停下来等待,然后再继续执行. 范例程序,一个线程(ClientThread)对另外一个线程(ServerThread)传递请求,实现一个模拟消息通道的功能. public clas ...

  8. bias、variance与拟合之间的关系

    Error = Bias^2 + Variance+Noise 误差的原因: 1.Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度,即算法本身的拟合能力. 2.Variance ...

  9. PHP算法之字符串转换整数 (atoi)

    请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之 ...

  10. Python中虚拟环境venv的基本用法

    环境windows 7 venv为python3中的默认库,无需安装. 创建新的venv方法, 在当前文件夹下执行cmd,输入如下代码 python -m venv bob bob为需要创建的文件夹名 ...