流stream FileInputStream(f)

package stream; 

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

public class TestStream {

    public static void main(String[] args) {

        try {

            //准备文件lol.txt其中的内容是AB,对应的ASCII分别是65 66

            File f =new File("d:/lol.txt");

            //创建基于文件的输入流

// 通过这个输入流,就可以把数据从硬盘,读取到Java的虚拟机中来,也就是读取到内存中

通过刘实现内存与硬盘的数据交互

            FileInputStream fis =new FileInputStream(f);//创建输入流,参数为一个文件

            //创建字节数组,其长度就是文件的长度

            byte[] all =new byte[(int) f.length()];

            //以字节流的形式读取文件所有内容

            fis.read(all);//输入流fis读取流的内容

            for (byte b : all) {

                //打印出来是65 66

                System.out.println(b);

             

            //每次使用完流,都应该进行关闭

            fis.close();//流的关闭

        catch (IOException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

         

    }

}

————————————————————————————————————————————————————————

字节流

1-InputStream是字节输入流,同时也是抽象类,只提供方法声明,不提供方法的具体实现。
FileInputStream 是InputStream子类,以FileInputStream 为例进行文件读取

上述例子即为字节输入流,输入端为File

2-OutputStream是字节输出流,同时也是抽象类,只提供方法声明,不提供方法的具体实现。
FileOutputStream 是OutputStream子类,以FileOutputStream 为例向文件写出数据

注: 如果文件d:/lol2.txt不存在,写出操作会自动创建该文件。 
但是如果是文件 d:/xyz/lol2.txt,而目录xyz又不存在,会抛出异常

try {
            // 准备文件lol2.txt其中的内容是空的
            File f = new File("d:/lol2.txt");
            // 准备长度是2的字节数组,用88,89初始化,其对应的字符分别是X,Y
            byte data[] = { 88, 89 };
 
            // 创建基于文件的输出流
            FileOutputStream fos = new FileOutputStream(f);//输出流fos,输出端为文件f
            // 把数据写入到输出流
            fos.write(data);//通过输出流写入输出端,下面write方法参数给出的是一个data数组,数据的来源
            // 关闭输出流
            fos.close();
             
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

猜你喜欢

转载自blog.csdn.net/Whiteleaf3er/article/details/82426188