java_IO流(输入流)
* 字节输入流(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流(输入流)的更多相关文章
- Java_IO流_File类配合使用(其中用到了递归)
第一:Java File类的功能非常强大,利用Java基本上可以对文件进行所有的操作.以下对Java File文件操作以及常用方法进行简单介绍 案例1:遍历出指定目录下的文件夹,并输出文件名 stat ...
- java_IO流之 NIO
NIO 定义 即新IO,在JDK1.4的java.nio.*包中引入,其目的在于提高速度. 在Java1.4之前的I/O系统中,提供的都是面向流的I/O系统,系统一次一个字节地处理数据,一个输入流产生 ...
- java_IO流
IO流概述及分类 Reader InputStream OutputStream Writer都是Object的直接子类 字节流: 字节输入流 InputStream(抽象类) |---File ...
- Java_IO流_抽象类
一. 概念 流动,从一端流向另一端,源头与目的地 以程序为中心,程序与 数组/文件/网络连接/数据库, 二. io流分类 流向:输入流与输出流 数据 :字节楼:二进制,所有文件都可以操作,包括 ...
- Java_IO流输入输出
第三章 输入输出 一.I/O Input/Output 二.File 用途:对文件和目录进行常规操作(除文件读写操作外). 方法:exists():判断文件或目录是否存在 isFile():判断是否是 ...
- java_IO流(输出流)
** * io流: * 输入流:硬盘输入到内存 字节/字符输入流 * 输出流:内存输出到硬盘 字节/字符输入流 * 字节流:一切数据都是字节存储(二进制) * 字节输出流(OutputStream): ...
- java_IO流小结
字符流和字节流的主要区别: 1.字节流读取的时候,读到一个字节就返回一个字节: 字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在UTF-8码表中是3个字节)时.先去查指定的编码表,将 ...
- Java_IO流实验
实验题目链接:Java第09次实验(IO流) 0. 字节流与二进制文件 我的代码 package experiment.io; import java.io.DataInputStream; impo ...
- java_IO流读取本地文件
package com.ht.util; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoun ...
随机推荐
- 后缀自动机求LCS——spoj-LCS
经典题 注意匹配的时候:用t串去s串的SAM里进行匹配,和字典树一样遍历t中字符,用cur记录当前已经匹配的长度,如果能当前字符能匹配则cur++(这里不能直接用cur=len[now]),反之用li ...
- flutter WebView flutter js 互调
通过webview 进行flutter 和js 的互调,页面可以放在其他网站 也可以放在本地,我这里放在本地进行测试. 1.引入webview_flutter: ^0.3.5+2 这个是官网推荐用的, ...
- hdu多校第六场1012 (hdu6645) Stay Real 假博弈,真贪心
题意: 给你一个小根堆,从根开始拿,拿走子节点被拿完后才可以拿走父节点,两个人依次拿,谁拿的节点总和大谁获胜,问你谁有必胜策略. 题解: 小根堆中,每个点的权值总是不小于父亲节点的权值.所以无论怎么取 ...
- fasttext源码剖析
fasttext源码剖析 目的:记录结合多方资料以及个人理解的剖析代码: https://heleifz.github.io/14732610572844.html http://www.cnbl ...
- flutter layout-child
一.Container 二.Padding 三.Center 四.Align 五.FittedBox 六.AspectRatio 七.ConstrainedBox 八.Baseline 九.Fract ...
- 制作windows puppet openstack镜像
由于电信需要远程部署软件,拟使用puppet进行远程服务管理 前提 windows系统已经安装 windows已经安装virtio driver 远程桌面开启,最好关闭防火墙 设置MTU 在没有安装c ...
- log4j架构
Log4j API设计为分层结构,其中每一层提供了不同的对象,对象执行不同的任务.这使得设计灵活,根据将来需要来扩展. 有两种类型可用在Log4j的框架对象. 核心对象: 框架的强制对象和框架的使用. ...
- 如何把本地文件上传github
1.$ git config --global user.name "xxx" 2.$ git config --global user.email xxx@qq.com 3.进入 ...
- C#Object与XML文件或二进制文件之间的转化
Object To Xml 文件 public static bool Serializer<T>(object obj, string path) { FileStream xmlfil ...
- python 16 文件操作(二)
转自 http://www.cnblogs.com/BeginMan/p/3169020.html 一.文件系统 从系统角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件存储并对存入的文件进 ...