文章目录

  • 1.使用输入流的步骤
  • 1.1.使用输入流的4个基本步骤
  • 1.2.具体编码(以FileInputStream为例)
  • 1~2步的实现:可以使用下列构造方法
  • FileInputStream(String name);
  • FileInputStream(File file);
  • 3.让输入流读取源中的数据:通过使用read方法实现
  • int read();
  • int read(byte b[]);
  • int read(byte b[] ,int off,int len);
  • 4.关闭流
  • close();
  • 1.3具体实例
  • 2.输出流使用步骤
  • 2.1.使用输出流的基本步骤
  • 2.2.具体编码(以FileOutputStram为例)
  • 1.给出输出流的目的地
  • 2.创建指向目的地的输出流
  • FileOutputStream(String name);
  • FileOutputStream(File file);
  • 3.使用输出流写字节
  • void write(int n);
  • void write(byte b[]);
  • void write(byte b[],int off,int len);
  • 4.关闭输出流。
  • void close();
  • 2.3 具体实例


1.使用输入流的步骤

1.1.使用输入流的4个基本步骤

  • 步骤1:设定输入流的源。(创建file对象或路径)
  • 步骤2:创建指向源的输入流。(创建指向file对象|文件路径的流对象)
  • 步骤3:让输入流读取源中的数据。(调用read方法)
  • 步骤4:关闭输入流。(调用close方法)

1.2.具体编码(以FileInputStream为例)

1~2步的实现:可以使用下列构造方法

FileInputStream(String name);

使用给定的文件名name创建一个FileInputStream流。其中name指向的文件与源代码文件所在的目录是并列关系

FileInputStream(File file);

使用File对象创建一个输入流。

说明:上述两种方法中的参数name和file指定的文件称为输入流的源,输入流的作用是打开了一个到达文件的通道

用法如下:

try{
 FileInputStream in = new FileInputStream("hello.txt"); 
}
catch(IOException e){
 System.out.println("File read error:"+e);
}

(第二种构造方法类似于上述)

try{
    File file=new File("hello.txt");
    FileInputStream in=new FileInputStream(file);
}catch(IOException e){
    System.out.println("File read error:"+e);
}

3.让输入流读取源中的数据:通过使用read方法实现

int read();

该方法从源中读取单个字节的数据,返回0~225之间的一个整数,如果未读出字节就返回-1,每调用一次,读取游标向后移动一位。

int read(byte b[]);

该方法从源中试图读取b.length个字节到字节数组b中,返回实际的读取字节数目。如果到达文件的末尾则返回-1.

int read(byte b[] ,int off,int len);

该方法从源中试图读取len个字节到字节数组b中,并返回实际读取的字节数目。参数off指定从字节数组的某个位置开始存放读取的数据。如果到达文件的末尾,则返回-1.

4.关闭流

close();

此方法为关闭流的方法。

注意:FileInputStream按顺序地读取文件,只要不关闭流,每次调用read方法就顺序地读取源中其余的内容直到源的末尾或被关闭。

1.3具体实例

/**
 * 学习使用文件字节输入流的步骤
 */
public static void useDemo() throws IOException {
    //1.创建文件源对象
    File file = new File("麻子.txt");
    //2.创建文件字节输入流对象并指向文件源对象
    InputStream fileStream = new FileInputStream(file);
    //3.让输入流读取源中的数据
    int n;
    while ((n=fileStream.read())!=-1){
        System.out.print((char)n);
    }
    //4.读取完毕,调用close方法关闭流,释放系统资源
    fileStream.close();
}

ios类方法中的读取属性 io读取文件的流程_ios类方法中的读取属性

2.输出流使用步骤

2.1.使用输出流的基本步骤

  • 步骤1:给出输出流的目的地。(创建file对象)
  • 步骤2:创建指向目的地的输出流。(创建输出流的对象指向file对象)
  • 步骤3:让输出流把数据写入到目的地。(调用write方法)
  • 步骤4:关闭输出流。(调用close方法)

2.2.具体编码(以FileOutputStram为例)

1.给出输出流的目的地

一般目的地为File对象或String对象指定路径的文件。

2.创建指向目的地的输出流

我们可以使用FileOutputStream类具有刷新功能的构造方法创建指向文件的输出流:

FileOutputStream(String name);

此方法使用给定的文件名name创建FileOutputStream流。其中name指向的文件与源代码文件所在的目录是并列关系

FileOutputStream(File file);

此方法使用File对象创建FileOutputStream流。

说明:上述两种方法中的参数name和file指定的文件称为输出流的目的地,输出流的作用是打开了一个到达文件的通道

3.使用输出流写字节

方法:

void write(int n);

该方法向目的地写入单个字节。

void write(byte b[]);

该方法向目的地写入一个字节数组。

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

该方法给定字节数组中起始于偏移量off处取len个字节写到目的地。

4.关闭输出流。

void close();

注意:FileOutputStream流顺序地写入文件,只要不关闭流,每次调用write方法就顺序地向目的地写入内容,直到流被关闭

2.3 具体实例

public static void useDemo() throws IOException {
    //创建目的地
    File file = new File("四郎.txt");
    //创建指向目的地的输出流
    OutputStream outputStream = new FileOutputStream(file);
    //准备要写的数据
    String str = "大家好,我是四郎,我喜欢麻子";
    //调用write方法进行写入
    outputStream.write(str.getBytes(StandardCharsets.UTF_8));
    //调用close方法关闭流
    outputStream.close();
}

ios类方法中的读取属性 io读取文件的流程_ios类方法中的读取属性_02