Java的知识点29—— 文件字符流、字节数组流
文件字符流 FileReader FileWriter
分段读取 文件字符输入流
package cn.dym;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
/*** 四个步骤: 分段读取 文件字符输入流* 1、创建源* 2、选择流* 3、操作* 4、释放资源* @author**/
public class IOTest505 {public static void main(String[] args) {//1、创建源File src = new File("abc.txt");//2、选择流Reader reader =null;try {reader =new FileReader(src);//3、操作 (分段读取)char[] flush = new char[1024]; //缓冲容器int len = -1; //接收长度while((len=reader.read(flush))!=-1) {//字符数组-->字符串String str = new String(flush,0,len);System.out.println(str);} } catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally {//4、释放资源try {if(null!=reader) {reader.close();}} catch (IOException e) {e.printStackTrace();}}}}
文件字符输出流
package cn.dym;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;/*** 四个步骤: 文件字符输出流* 1、创建源* 2、选择流* 3、操作* 4、释放资源* @author **/
public class IOTest06 {public static void main(String[] args) {//1、创建源File dest= new File("dest.txt");//2、选择流Writer writer =null;try {writer =new FileWriter(dest);//3、操作 (分段读取)//写法一
// String msg="IO is so easy\r\n代止兮欢迎你";
// char[] datas=msg.toCharArray();//字符串——》字符数组
// writer.write(datas, 0, datas.length);
// writer.flush(); //写法二
// String msg="IO is so easy\r\n代止兮欢迎你";
// writer.write(msg); //字符也是字符数组
// writer.flush(); //写法三writer.append("IO is so easy\r\n").append("哈哈哈\r\n").append("代止兮欢迎你");writer.flush(); } catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally {//4、释放资源try {if(null!=writer) {writer.close();}} catch (IOException e) {e.printStackTrace();}}}
}
字节数组流
字节数组输入流
package cn.dym;import java.io.ByteArrayInputStream;
import java.io.InputStream;/*** 四个步骤: 字节数组输入流* 1、创建源 : 字节数组 不要太大* 2、选择流* 3、操作* 4、释放资源: 可以不用处理* @author **/
public class IOTest07 {public static void main(String[] args) {//1、创建源byte [] src="talk is cheap show me the code".getBytes();//2、选择流InputStream is=null;is=new ByteArrayInputStream(src);}
}
字节数组输出流 ByteArrayOutputStream
package cn.dym;import java.io.ByteArrayOutputStream;
import java.io.FileNotFoundException;
import java.io.IOException;/*** 字节数组输出流 ByteArrayOutputStream*1、创建源 : 内部维护*2、选择流 : 不关联源*3、操作(写出内容)*4、释放资源 :可以不用** 获取数据: toByteArray()* */
public class IOTest07 {public static void main(String[] args) {//1、创建源byte[] dest =null;//2、选择流 (新增方法)ByteArrayOutputStream baos =null;try {baos = new ByteArrayOutputStream();//3、操作(写出)String msg ="show me the code";byte[] datas =msg.getBytes(); // 字符串-->字节数组(编码)baos.write(datas,0,datas.length);baos.flush();//获取数据dest = baos.toByteArray();System.out.println(dest.length +"-->"+new String(dest,0,baos.size()));}catch(FileNotFoundException e) { e.printStackTrace();}catch (IOException e) {e.printStackTrace();}finally{//4、释放资源try {if (null != baos) {baos.close();} } catch (Exception e) {}}}}
IO_综合_对接流实例
package cn.dym;import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;/*** 1. 图片读取到字节数组中* 2. 字节数组写出到文件* 获取数据: toByteArray()* */
public class IOTest08 {public static void main(String[] args) {//图片转成字节数组byte[] datas = fileToByteArray("p.png");System.out.println(datas.length);byteArrayToFile(datas,"p-byte.png");}// 1. 图片读取到字节数组中// 1). 图片到程序 FileInputStream// 2). 程序到字节数组 ByteArrayOutputStreampublic static byte[] fileToByteArray(String filePath) {//1、创建源与目的地File src = new File(filePath);byte[] dest =null;//2、选择流InputStream is =null;ByteArrayOutputStream baos =null;try {is =new FileInputStream(src);baos = new ByteArrayOutputStream();//3、操作 (分段读取)byte[] flush = new byte[1024*10]; //缓冲容器int len = -1; //接收长度while((len=is.read(flush))!=-1) {baos.write(flush,0,len); //写出到字节数组中 } baos.flush();return baos.toByteArray();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally {//4、释放资源try {if(null!=is) {is.close();}} catch (IOException e) {e.printStackTrace();}}return null; }/*** 2、字节数组写出到图片* 1)、字节数组到程序 ByteArrayInputStream* 2)、程序到文件 FileOutputStream*/public static void byteArrayToFile(byte[] src,String filePath) {//1、创建源File dest = new File(filePath);//2、选择流InputStream is =null;OutputStream os =null;try {is =new ByteArrayInputStream(src);os = new FileOutputStream(dest);//3、操作 (分段读取)byte[] flush = new byte[5]; //缓冲容器int len = -1; //接收长度while((len=is.read(flush))!=-1) {os.write(flush,0,len); //写出到文件 } os.flush();} catch (IOException e) {e.printStackTrace();}finally {//4、释放资源try {if (null != os) {os.close();} } catch (Exception e) {}}}
}
Java的知识点29—— 文件字符流、字节数组流相关推荐
- .dat文件写入byte类型数组_文件字节流、文件字符流、缓冲字节流、缓冲字符流字节数组流、数据流、转换流、对象流...
一.实操名称: 描述如下流的基本作用:文件字节流.文件字符流.缓冲字节流.缓冲字符流字节数组流.数据流.转换流.对象流二.描述1.文件字节流:包括:FileInputStream,FileOutput ...
- 11Java的字节数组流及其使用
IO字节数组流 字节数组流ByteArrayInputStream.ByteArrayOutputStream的区别: 源头换成电脑上的内存中的数据,字节数组,可以看成电脑上的内存,或者是网络上的内存 ...
- IO知识点整理(序列化,管道流,数据流,字节数组流,与编码)
一:序列化的问题 1.序列号的使用问题 关于在序列化中的序列号的使用问题,一般要是使用. 因为,每次要序列化的类产生都会产生一个一个新的序列号,如果将这个类的程序修改后,就会产生新的序列号,以前序列化 ...
- Java 字节数组流之图片转成字节数组
Java 字节数组流之图片转成字节数组,相当于图片的复制 字符串可以直接读取到字节数组中用(getBytes) 问题:将一张图片读到字节数组里面(所有的东西都能够读到字节数组里面) 思路:先使用文件输 ...
- Java 字节数组流
字节数组流,即向内存数组读/取数据,实现数据在流与流之间的传递. 与字节流别无二致. ByteInputStream: package SAMPLE.IO流; import java.io.*; /* ...
- 数据转换(字节数组转文件、文件转字节数组、16进制字符转字节数组、字节数组转16进制字符)
字节数组转文件 procedure ByteArrayToFile(const ByteArray: TByteDynArray;const FileName: string); varCount: ...
- Java中将inputstream输入流转换成byte[]字节数组
Java中将inputstream输入流转换成byte[]字节数组 Java中的I/O机制都是基于数据流进行输入和输出的,将流转换成字节数组保存下来是数据流传输必不可少的一部分.转换的代码如下(在具体 ...
- Java的知识点28——文件编码、IO流的实例
文件编码 字符 -->字节 (编码 encode) 字节 --> 字符(解码 decode) 节点流 处理流 package cn.dym;import java ...
- java 字符字节数组_Java字符串与字符、字节数组知识点总结
(1)用字符数组创建字符串对象,String类中有两个有字符数组创建字符串对象的构造的方法: String(char [ ])该构造方法用指定的字符数组创建构造一个字符串对象: String (cha ...
最新文章
- 学习资料:网络回溯分析技术八大应用之安全取证
- Dataset之iGAN:iGAN数据集的简介、安装、使用方法之详细攻略
- Java里面Unreachable code
- 【网络流】人员雇佣(luogu 1791)
- Scala和Java二种方式实战Spark Streaming开发
- newifi3高恪魔改最新_12.08达达最新球球id账号呆瓜表
- 中国科学院大学计算机研究生拟录取名单,2019中国科学院大学硕士考研研究生拟录取名单全部(2)...
- Java新职篇:面向对象编程的3个原则是什么?
- 网吧会员管理系统c语言,常用的网吧会员管理系统哪个比较好|纳客软件
- android下拉菜单刷新,Android开发之头部悬浮的上拉加载,下拉刷新的列表
- 添加遮罩css,添加遮罩层
- 2022/06/06 day07:Scanner类、Random类、ArrayList 类
- 阿里OOS的简单使用
- 云原生之使用docker部署qbittorrent
- springboot加载指定位置的指定类型配置文件
- PASSWORD_VERIFY_FUNCTION(口令复杂性验证)
- Spring Data JPA REST Query QueryDSL
- Java面向对象知识点总结(全)
- MyBatis总结 Day01
- 博弈背景下的记忆化搜索/题意理解 (HDU 2452 Navy maneuvers)
热门文章
- 解决AttributeError: 'module' object has no attribute 'main' 安装第三方包报错
- BZOJ 1685 [Usaco2005 Oct]Allowance 津贴:贪心【给硬币问题】
- [LeetCode] Binary Tree Postorder题解
- sublime Text3常用快捷键
- 自动生成get,set方法
- joomla个性定制(二)
- Spring Workflow
- delphi 执行一个外部程序,当外部程序结束后言主程序立即响应
- WINCE6.0+S3C2443的启动过程---eboot5
- php拆分数字字符串方法