字节流

字节流输入输出问题图解

%title插图%num

及向文件中写数据为输出,从文件中读取数据为输入

字节输出流:OutputStream

  • FileOutputStream
  • 写入数据文件,学习父类方法,使用子类对象
  • 子类中的构造方法:作用:绑定输出的输出目的
  • 参数:
  • File 封装一个文件
  • String 字符串的文件名

流对象使用步骤

  1. 创建流的子类的对象,绑定数据目的
  2. 调用流对象的方法write写
  3. close释放资源

流对象的构造方法,可以创建文件,如果文件已经存在,直接覆盖

代码:


package cn.hiluna.demo; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; /** * FileOutputStream * 写入数据文件,学习父类方法,使用子类对象 * * 子类中的构造方法:作用:绑定输出的输出目的 * 参数: * File 封装一个文件 * String 字符串的文件名 * * 流对象使用步骤 * 1.创建流的子类的对象,绑定数据目的 * 2.调用流对象的方法write写 * 3.close释放资源 * * 流对象的构造方法,可以创建文件,如果文件已经存在,直接覆盖 * @author zhang */ public class FileOutputStreamDemo { public static void main(String[] args)throws IOException{ FileOutputStream fos = new FileOutputStream("e:\\a.txt"); //流对象的方法write //写1个字节 fos.write(100); //写字节数组 byte[] bytes = {65,66,67,68}; fos.write(bytes); //写字节数组的一部分,开始的索引,写几个 fos.write(bytes,1,2); //写入字节数组的简便方式 //写字符串 fos.write("hello".getBytes()); //关闭资源 fos.close(); } }

创建的文件截图:

%title插图%num


异常处理


package cn.hiluna.demo; import java.io.FileOutputStream; import java.io.IOException; /** * IO流的异常处理 * try catch finally * * 细节: * 1.保证流对象变量,作用域足够 * 2.catch里面,怎么处理: * 输出异常信息,看哪里出现问题 * 停下程序,重新尝试 * 3.如果流对象建立失败了,需要关闭资源吗? * new 对象的时候,失败了,没有占用系统资源 * 释放资源的时候,需要对流对象判断null * @author zhang */ public class FileOutputStreamDemo02 { public static void main(String[] args) { //try 外面声明变量,try的里面建立对象 FileOutputStream fos = null; try { fos = new FileOutputStream("e:\\a.txt"); fos.write(100); } catch (IOException ex) { ex.printStackTrace(); throw new RuntimeException("文件写入失败,重试"); }finally{ try { if (fos != null) { fos.close(); } } catch (IOException ex) { throw new RuntimeException("关闭资源失败"); } } } }

读取

read带有String为参数的读取方法

package cn.hiluna.demo;

/**
 * 字节输入流
 *  java.io.InputStream 所有字节输入流的超类
 * 作用:读取任意文件,每次只读取一个字节
 *
 * 读取的方法  read
 *      返回值:int  read() 读取一个字节
 *      返回值:int  read(byte[] b) 读取一定量的字节,存储到数组中
 */

import java.io.FileInputStream;
import java.io.IOException;

/**
 * FileInputStream读取文件
 *
 * 构造方法:为这个流对象绑定数据源
 *
 *  参数:
 *      File 类型对象
 *      String 类型对象
 *  输入流读取文件的步骤:
 *      1.创建字节输入流的子类的对象
 *      2.调用读取方法read读取
 *      3.关闭流
 *
 *      read()方法,
 *          read()执行一次,就会自动读取下一个字节
 *          返回值,返回的是读取到的字节,读取到文件结尾返回-1
 */
public class Input {
    public static void main(String[] args) throws IOException {
        FileInputStream fileInputStream = new FileInputStream("e:\\a.txt");
        //读取一个字节,调用方法read 返回int
        //使用循环方式,读取文件, 循环结束的条件  read()方法返回-1 结束
        int len = 0;//接受一些read方法返回值

        while ((len = fileInputStream.read()) != -1){
            System.out.print((char)len);
        }


        //关闭资源
        fileInputStream.close();
    }
}

read带有数组为参数的读取方法

package cn.hiluna.demo;

import java.io.FileInputStream;
import java.io.IOException;


/**
 * FileInputStream读取文件
 *  读取方法int read(byte[] b) 读取字节数组
 *  数组作用:起到缓冲作用,提高效率
 *  read返回的int,表示读取多少个有效的字节数
 */
public class Input02 {
    public static void main(String[] args) throws IOException {
        FileInputStream fileInputStream = new FileInputStream("e:\\a.txt");
        //创建一个字节数组
        byte[] b = new byte[1024];

        int len = 0;
        while ((len = fileInputStream.read(b)) != -1){
            System.out.println(new String(b,0,len));
        }

//        int len = fileInputStream.read(b);
//        System.out.println(new String(b));//ab
//        System.out.println(len);//2
//
//        len = fileInputStream.read(b);
//        System.out.println(new String(b));//cd
//        System.out.println(len);//2
//
//        len = fileInputStream.read(b);
//        System.out.println(new String(b));//ed
//        System.out.println(len);//1
//
//        len = fileInputStream.read(b);
//        System.out.println(new String(b));//ed
//        System.out.println(len);//1

        fileInputStream.close();
    }
}


暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇