美文网首页
I/O 字节输入输出

I/O 字节输入输出

作者: 粥一样温柔 | 来源:发表于2022-02-20 17:59 被阅读0次

字节输出流 【OutputStream】

将指定字节信息写出到目的地。定义字节输出流的基本共性功能方法。此抽象类是字节输出流的超类。

public void close();
public void flush();
public void write(byte[] b);
public void write(byte[] b,int off,int len);

文件字节输出流 【FileOutputStream】

FileOutputStream extends OutputStream

//构造方法
FileOutPutStream(String name);
FilreOutPutStream(File file);
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;

public class FileOutputStreamDemo {
    public static void main(String[] args) throws IOException {
        byte[] byte0 = {97,98,99,100};
        byte[] byte1 = "你好".getBytes(StandardCharsets.UTF_8);
        FileOutputStream fileOutputStream = new FileOutputStream("C:\\Users\\forever\\Desktop\\summer.txt",false);
        fileOutputStream.write(97);
        fileOutputStream.write(byte0);
        fileOutputStream.write(byte1);
        System.out.println(Arrays.toString(byte1));
        fileOutputStream.close();
    }
}
//运行结果为:在桌面中的summer.txt文件中生成文字:aabcd你好

字节输出流的续写和换行:
构造方法:
FileOutputStream(String name,boolean append);
FileOutputStream(File file,boolean append);
参数:
String name;File file:写入数据的目的地
Boolean append:追加写的开关:true(创建对象不会覆盖源文件,继续在文件末尾追加写数据);false(创建一个新文件,覆盖源文件)

换行:
windows:\r\n
Linux:/n
mac:/r

字节输入流 【InputStream】

该抽象类是表示字节输入流的所有类的超类,可以读取字节信息到内存中。他定义了字节输入流的基本共性功能方法。

public void close():关闭此输入流并释放与此流相关联的任何系统资源;
public abstract int read():从输入流读取数据的下一个字节;
public int read(byte[] b):从输入流中读取一些字节数,并将它们存储到字节数组b中

文件字节输入流 【FileInputStream】

jfaca.io.FileInputStream extends InputStream
作用:把硬盘文件中的数据,读取到内存中使用
构造方法:
FileInputStream(String name)
FileInputStream(File file)
参数:读取文件的数据源

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

public class FileInputStreamDemo {
    public static void main(String[] args) throws IOException {
        int len =0;
        FileInputStream fileInputStream = new FileInputStream("C:\\Desktop\\summer.txt");
        while ((len = fileInputStream.read())!=-1){
            System.out.print((char)len);
        }
        fileInputStream.close();
    }
}

布尔表达式(len = fileInputStream.read())!=-1
1、fileInputStream.read():读取一个字节
2、len = fileInputStream.read():把读取到的字节赋值给变量len
3、(len = fileInputStream.read())!=-1:判断变量len是否不等于-1

字节输入流一次读取多个字节的方法

int read(byte[] b) 从输入流中读取一档数量的字节,并将其存储在缓冲区书中b中。
方法参数:byte[]的作用:存储每次读取到的多个字节,一般把数组长度定义为1024,或1024的整数倍
方法的返回值int:读取的有效字节个数

String类的构造方法:
String(byte[] bytes):把字节数组转换为字符串
String(byte[] bytes, int offset,int length)把字节数组的一部分转换为字符串;offset:数组的开始索引 length:转换的字节个数

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

public class FileInputStreamDemo {
    public static void main(String[] args) throws IOException {
        byte[] bytes = new byte[1024];
        int len =0;
        FileInputStream fileInputStream = new FileInputStream("C:\\Users\\forever\\Desktop\\新建文本文档.txt");
        while ((len = fileInputStream.read(bytes))!=-1){
            System.out.print(new String(bytes,0,len));
        }
        fileInputStream.close();
    }
}

复制文件

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

public class FileOutputStreamDemo01 {
    public static void main(String[] args) throws IOException {
        byte[] bytes = new byte[1024];
        int len = 0;
        //读取文件
        FileInputStream fileInputStream = new FileInputStream("C:\\Users\\forever\\Desktop\\新建文本文档.txt");

        //写入文件
        FileOutputStream fileOutputStream = new FileOutputStream("C:\\Users\\forever\\Desktop\\summer.txt",false);
        while ((len = fileInputStream.read(bytes))!=-1){
            System.out.println(new String(bytes,0 ,len));
            fileOutputStream.write(bytes,0,len);
        }
        //关闭资源
        fileOutputStream.close();
        fileInputStream.close();
    }
}

相关文章

  • I/O 字节输入输出

    字节输出流 【OutputStream】 将指定字节信息写出到目的地。定义字节输出流的基本共性功能方法。此抽象类是...

  • 浅谈Java中流的概念与用途

    Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流...

  • C语言学习12.文件和IO

    I/O:input/output,输入输出。分三类:标准I/O,串I/O,文件I/O 标准I/O: 标准输入:从标...

  • C++ 基本的输入输出

    C++ 基本的输入输出 C++ 的 I/O 发生在流中,流是字节序列。如果字节流是从设备(如键盘、磁盘驱动器、网络...

  • I/O流的热点问题

    I/O的框架 I/O流包括字节流和字符流字节流包括字节输入流InputStream和字节输出流OutputStre...

  • Java I/O的工作机制

    基于字节的I/O操作接口 基于字符的I/O操作接口 字节和字符转换接口 磁盘I/O的工作机制 ...

  • 深入理解计算机系统笔记 2020-10-26

    1.7.4 文件就是字节序列。每个I/O设备,包括磁盘,键盘,显示器甚至网络都可以看成是文件。系统中的所有输入输出...

  • 系统分析师-第二章(计算机组成与体系结构 B)

    输入输出(I/O)接口 I/O系统的工作方式程序控制:CPU使用I/O指令编程控制,需要不停的查询I/O系统是否完...

  • Android手机I/O调度模式简介

    I/O(input/output)即输入输出。I/O Schedulers不光提供了磁盘读写操作的策略,同时还关系...

  • Advanced File I/O Scatter/Gather

    Scatter/Gather I/O Scatter/gather I/O 是一种输入输出的方法。它要么是单个的系...

网友评论

      本文标题:I/O 字节输入输出

      本文链接:https://www.haomeiwen.com/subject/aklvlrtx.html