Java学习Day16

2019-09-26  本文已影响0人  JayMeWangGL

今日学习内容总结


IO流

IO的分类

根据数据的流向分为:输入流输出流

格局数据的类型分为:字节流字符流


字节流

字节输出流(OutputStream)

OutputStream成员方法:

close方法,当完成流的操作时,必须调用此方法,释放系统资源。

FileOutputStream类

java.io.FileOutputStream类是文件输出流,用于将数据写出到文件。

构造方法

当你创建一个流对象时,必须传入一个文件路径。该路径下,如果没有这个文件,会创建该文件。如果有这个文件,会清空这个文件的数据。

相关代码:

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

public class demo01 {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("D:\\a.txt");
        fos.write(97);
        fos.close();
    }
}

写出字节write(int b) 方法,每次可以写出一个字节数据

写出字节数组write(byte[] b),每次可以写出数组中的数据

写出指定长度字节数组write(byte[] b, int off, int len) ,每次写出从off索引开始,len个字节

数据追加续写

这两个构造方法,参数中都需要传入一个boolean类型的值,true 表示追加数据,false 表示清空原有数据。这样创建的输出流对象,就可以指定是否追加续写了
代码示例:

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

public class demo02 {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("D:\\HelloWorld.txt",true);
//        fos.write("Hello".getBytes());//第一次执行代码
        fos.write("World".getBytes());//第二次执行的代码
        fos.close();
    }
}

数据换行输出

只需在需要换行处添加"\r\n"写入即可

public class Demo03 {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("D:\\b.txt",true);
        byte[] bytes = {64,65,66,67,68,69,70,71,72};
        for (byte aByte : bytes) {
            fos.write(aByte);
            fos.write("\r\n".getBytes());
        }
        fos.close();
    }
}
  • 回车符\r和换行符\n
    • 回车符:回到一行的开头(return)。
    • 换行符:下一行(newline)。
  • 系统中的换行:
    • Windows系统里,每行结尾是 回车+换行 ,即\r\n
    • Unix系统里,每行结尾只有 换行 ,即\n
    • Mac系统里,每行结尾是 回车 ,即\r。从 Mac OS X开始与Linux统一。

字节输入流【InputStream】

InputStream的成员方法:

FileInputStream类

构造方法:

读取字节数据

  1. 读取字节read方法,每次可以读取一个字节的数据,提升为int类型,读取到文件末尾,返回-1
  2. 使用字节数组读取read(byte[] b),每次读取b的长度个字节到数组中,返回读取到的有效字节个数,读取到末尾时,返回-1

使用步骤:

  1. 创建FileInputStream对象,构造方法中绑定要读取的对象
  2. 使用read方法读取文件
  3. 释放资源
public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("D:\\a.txt");
        int data=0;
        while((data=fis.read())!=-1){
            System.out.println(data);
        }
        fis.close();
    }
上一篇 下一篇

猜你喜欢

热点阅读