文件字符流 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—— 文件字符流、字节数组流相关推荐

  1. .dat文件写入byte类型数组_文件字节流、文件字符流、缓冲字节流、缓冲字符流字节数组流、数据流、转换流、对象流...

    一.实操名称: 描述如下流的基本作用:文件字节流.文件字符流.缓冲字节流.缓冲字符流字节数组流.数据流.转换流.对象流二.描述1.文件字节流:包括:FileInputStream,FileOutput ...

  2. 11Java的字节数组流及其使用

    IO字节数组流 字节数组流ByteArrayInputStream.ByteArrayOutputStream的区别: 源头换成电脑上的内存中的数据,字节数组,可以看成电脑上的内存,或者是网络上的内存 ...

  3. IO知识点整理(序列化,管道流,数据流,字节数组流,与编码)

    一:序列化的问题 1.序列号的使用问题 关于在序列化中的序列号的使用问题,一般要是使用. 因为,每次要序列化的类产生都会产生一个一个新的序列号,如果将这个类的程序修改后,就会产生新的序列号,以前序列化 ...

  4. Java 字节数组流之图片转成字节数组

    Java 字节数组流之图片转成字节数组,相当于图片的复制 字符串可以直接读取到字节数组中用(getBytes) 问题:将一张图片读到字节数组里面(所有的东西都能够读到字节数组里面) 思路:先使用文件输 ...

  5. Java 字节数组流

    字节数组流,即向内存数组读/取数据,实现数据在流与流之间的传递. 与字节流别无二致. ByteInputStream: package SAMPLE.IO流; import java.io.*; /* ...

  6. 数据转换(字节数组转文件、文件转字节数组、16进制字符转字节数组、字节数组转16进制字符)

    字节数组转文件 procedure ByteArrayToFile(const ByteArray: TByteDynArray;const FileName: string); varCount: ...

  7. Java中将inputstream输入流转换成byte[]字节数组

    Java中将inputstream输入流转换成byte[]字节数组 Java中的I/O机制都是基于数据流进行输入和输出的,将流转换成字节数组保存下来是数据流传输必不可少的一部分.转换的代码如下(在具体 ...

  8. Java的知识点28——文件编码、IO流的实例

    文件编码  字符 -->字节  (编码 encode)           字节 --> 字符(解码 decode) 节点流  处理流 package cn.dym;import java ...

  9. java 字符字节数组_Java字符串与字符、字节数组知识点总结

    (1)用字符数组创建字符串对象,String类中有两个有字符数组创建字符串对象的构造的方法: String(char [ ])该构造方法用指定的字符数组创建构造一个字符串对象: String (cha ...

最新文章

  1. 学习资料:网络回溯分析技术八大应用之安全取证
  2. Dataset之iGAN:iGAN数据集的简介、安装、使用方法之详细攻略
  3. Java里面Unreachable code
  4. 【网络流】人员雇佣(luogu 1791)
  5. Scala和Java二种方式实战Spark Streaming开发
  6. newifi3高恪魔改最新_12.08达达最新球球id账号呆瓜表
  7. 中国科学院大学计算机研究生拟录取名单,2019中国科学院大学硕士考研研究生拟录取名单全部(2)...
  8. Java新职篇:面向对象编程的3个原则是什么?
  9. 网吧会员管理系统c语言,常用的网吧会员管理系统哪个比较好|纳客软件
  10. android下拉菜单刷新,Android开发之头部悬浮的上拉加载,下拉刷新的列表
  11. 添加遮罩css,添加遮罩层
  12. 2022/06/06 day07:Scanner类、Random类、ArrayList 类
  13. 阿里OOS的简单使用
  14. 云原生之使用docker部署qbittorrent
  15. springboot加载指定位置的指定类型配置文件
  16. PASSWORD_VERIFY_FUNCTION(口令复杂性验证)
  17. Spring Data JPA REST Query QueryDSL
  18. Java面向对象知识点总结(全)
  19. MyBatis总结 Day01
  20. 博弈背景下的记忆化搜索/题意理解 (HDU 2452 Navy maneuvers)

热门文章

  1. 解决AttributeError: 'module' object has no attribute 'main' 安装第三方包报错
  2. BZOJ 1685 [Usaco2005 Oct]Allowance 津贴:贪心【给硬币问题】
  3. [LeetCode] Binary Tree Postorder题解
  4. sublime Text3常用快捷键
  5. 自动生成get,set方法
  6. joomla个性定制(二)
  7. Spring Workflow
  8. delphi 执行一个外部程序,当外部程序结束后言主程序立即响应
  9. WINCE6.0+S3C2443的启动过程---eboot5
  10. php拆分数字字符串方法