io流的引入与文件字节流

  • io流:就是一根吸管,插入后,可以操作目标文件

  • io流的分类:

    按方向:输入,输出

    按大小:字节,字符

    按处理方式:

    • 处理流:“管套着管” --- 流结合流
    • 节点流:直接跟目标文件接触的流
  • 文件字节流

    • FileInputStream(输入)

    先将文件中的内容导入到程序中来

    一个字符等于两个字节,所以是16位

    package com.bjsxt.test01;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException; public class Test {
    public static void main(String[] args) throws IOException {
    //文件----->程序 //1.确定一个文件
    File f = new File("D:\\a.txt");//程序连接文件
    //2.将“一根管”插入源文件中去
    FileInputStream fis = new FileInputStream(f);
    //System.out.println(fis.available());//对文件大小进行评估--------15字节
    //3.开始“动作”
    byte[] b = new byte[8];//定义缓冲数组,数组长度为8,下面就是8个8个读字节
    int n = fis.read(b);//返回数组中占用的数量 这里的read方法可以使用数组传参,不传参就是一个一个读字节,传数组长度为8的数组就是8个8个读字节
    while(n!=-1){
    //System.out.println(n);
    for (int i = 0; i <=n-1; i++) {
    System.out.println(b[i]);//这个循环用来查看数组里面的元素
    }
    n=fis.read(b);
    }
    //4.关闭流
    fis.close();
    }
    }
    • FileOutStream(输出)
    package com.bjsxt.test01;
    
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException; public class Test3 {
    public static void main(String[] args) throws IOException {
    //程序--->文件 //1.确定目标文件
    File f = new File("D:\\a\\b.txt");
    //2.将一个吸管插入目标文件中
    FileOutputStream fos = new FileOutputStream(f,true);//加true就是在原来的内容上进行追加,不加就是覆盖原来的内容
    //3.给一个字符串
    String str=" 附加:abc你好";
    //4.开始动作
    byte[] bytes = str.getBytes();
    /*
    for (byte b : bytes) {
    fos.write(b);
    } */
    fos.write(bytes);//这个可以代替上面注释的代码,而且更快,上面哪个是一个一个往外输
    //5.关闭流
    fos.close();
    }
    }
    • FileInputStream,FileOutStream(文件的复制)

      1. 效率低的方法
    package com.bjsxt.test02;
    
    import java.io.*;
    
    public class Test01 {
    public static void main(String[] args) throws IOException {
    //1.确定源文件
    File f1 = new File("D:\\a\\b.txt");
    //2.确定目标文件
    File f2 = new File("D:\\a\\a.txt");
    //3.将一根管插入源文件中
    FileInputStream fis = new FileInputStream(f1);
    //4.将一根管插入目标文件中
    FileOutputStream fos = new FileOutputStream(f2);
    //5.开始动作
    int n = fis.read();
    while(n!=-1){//-1就是结尾
    fos.write(n);
    n=fis.read();
    }
    //6.关闭流
    fos.close();
    fis.close();
    }
    }
    1. 效率高的方法

      注意:只往出写下标为[0,len)的数组,这是数组中的有效数组,不写无效的元素

    package com.bjsxt.test02;
    
    import java.io.*;
    
    public class Test02 {
    public static void main(String[] args) throws IOException {
    //1.确定源文件
    File f1 = new File("D:\\a\\b.txt");
    //2.确定目标文件
    File f2 = new File("D:\\a\\a.txt");
    //3.将一根管插入源文件中
    FileInputStream fis = new FileInputStream(f1);
    //4.将一根管插入目标文件中
    FileOutputStream fos = new FileOutputStream(f2);
    //5.开始动作
    byte[] b = new byte[6];
    int len = fis.read(b);//len是数组中占用的有效长度
    while(len!=-1){
    fos.write(b,0,len);//把长度为6的数组中下标【0,len)这个位置的写出去
    len = fis.read(b);
    }
    //6.关闭流
    fos.close();
    fis.close();
    }
    }

io流(io流的引入与文件字节流)的更多相关文章

  1. Java IO之字符流和文件

    前面的博文介绍了字节流,那字符流又是什么流?从字面意思上看,字节流是面向字节的流,字符流是针对unicode编码的字符流,字符的单位一般比字节大,字节可以处理任何数据类型,通常在处理文本文件内容时,字 ...

  2. java IO之字节流和字符流-Reader和Writer以及实现文件复制拷贝

    接上一篇的字节流,以下主要介绍字符流.字符流和字节流的差别以及文件复制拷贝.在程序中一个字符等于两个字节.而一个汉字占俩个字节(一般有限面试会问:一个char是否能存下一个汉字,答案当然是能了,一个c ...

  3. -1-4 java io java流 常用流 分类 File类 文件 字节流 字符流 缓冲流 内存操作流 合并序列流

      File类 •文件和目录路径名的抽象表示形式 构造方法 •public File(String pathname) •public File(String parent,Stringchild) ...

  4. IO库----IO类,文件输入输出,string流

    一.IO类 1.IO库类型和头文件表: 头文件 类型 iostream istream,wistream 从流读取数据 ostream,wostream 向流写入数据 iostream,wiostre ...

  5. 流Stream 文件File 流IO

    Java 流(Stream).文件(File)和IO Java.io 包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io 包中的流支持很多种格式,比如:基本类 ...

  6. File类的特点?如何创建File类对象?Java中如何操作文件内容,什么是Io流Io流如何读取和写入文件?字节缓冲流使用原则?

    重难点提示 学习目标 1.能够了解File类的特点(存在的意义,构造方法,常见方法) 2.能够了解什么是IO流以及分类(IO流的概述以及分类) 3.能够掌握字节输出流的使用(继承体系结构介绍以及常见的 ...

  7. io流-文件流\节点流

    FileOutputStream类(jdk1.0) 描述 java.io.FileOutputStream 类是文件字节输出流,用于将数据写入到文件中. 构造方法 //构造方法 FileOutputS ...

  8. 文件流 io.StringIo()

    import io f = io.StringIO() f.write("") f.getvalue() f.close 二进制 f = io.Bytesio()

  9. IO异常--缓冲流--转换流--序列化流( IO流2 )

    1.IO异常的处理 JDK7前处理:使用try...catch...finally 代码块,处理异常部分 // 声明变量 FileWriter fw = null; try { //创建流对象 fw ...

随机推荐

  1. HTML script tag type all in one

    HTML script tag type all in one script type https://developer.mozilla.org/en-US/docs/Web/HTML/Elemen ...

  2. AIoT & IoT

    AIoT & IoT Artificial Intelligence of Things Internet of Things AIoT === AI + IoT 人工智能物联网 === 人工 ...

  3. ES6 & Classes & Interface

    ES6 & Classes & Interface what's the difference between javascript Classes & Interface ? ...

  4. NGK算力生态建设者狂欢!SPC之后又有VAST!

    想致富,先挖矿.这句话已经成为了币圈的一句名言.挖矿一词始终贯穿着区块链以及数字加密领域. 据小道消息透露,NGK官最近将会推出两款挖矿产品---SPC星空币以及其子币VAST维萨币. 下面笔者就来一 ...

  5. NGK英国路演圆满结束,未来科技布局看好NGK公链技术

    近日,NGK全球路演英国站在首都伦敦圆满结束.区块链业内专家.各投行精英.各市场节点代表.八大产业代表参加了此次路演.同时,英国经济学人.每日邮报.金融时报等近百家财经媒体对此路演进行了大力报道.并且 ...

  6. DeFi热下的冷思考 NGK以更深层次的方式参与DeFi建设

    独具慧眼,深度挖掘DeFi潜力项目 作为早期DeFi的探索者和推动者,NGK在此轮热潮席卷市场前就已经开始构建自己的DeFi生态,独具慧眼的NGK上线了Baccarat流动性挖矿项目,完成了首个由平台 ...

  7. 画一个PBN大角度飞越转弯保护区

      今天出太阳了,尽管街上的行人依旧很少,但心情开始不那么沉闷了.朋友圈里除了关注疫情的最新变化之外,很多人已经开始选择读书或是和家人一起渡过这个最漫长的春节假期.陕西广电网络春节期间所有点播节目一律 ...

  8. sklearn中的pipeline的创建与访问

    前期博文提到管道(pipeline)在机器学习实践中的重要性以及必要性,本文则递进一步,探讨实际操作中管道的创建与访问. 已经了解到,管道本质上是一定数量的估计器连接而成的数据处理流,所以成功创建管道 ...

  9. net面试总结的题目

    准备的面试题目. 1.private.protected.public.internal的访问权限? private : 私有成员,在类的内部才可以访问. protected :保护成员,该类内部和继 ...

  10. redis环境配置

    1.解压redis压缩包 tar -zxvf redis-5.0.7 2. 基本环境安装 进入解压后的目录 安装yum(cents需要 其它版本Linux可能不适用yum用其它工具)ubuntu:ap ...