美文网首页
Java I/O流(一)

Java I/O流(一)

作者: RicherYY | 来源:发表于2018-11-24 20:26 被阅读0次

学习了Java中的i/o流来读取文件

1.File类的操作文件和目录属性
2.字符流字节流讲解
3.使用字节流读写文件
4.使用字符流读写文件
5.字节流读写二进制文件
6.使用对象流,对象的序列化

详解

1.对文件进行操作。

大概有的东西是文件的创建和判断文件存在不存在
了解就行,不是重点。

2.字节流和字符流的讲解

--- 字节流 字符流
输出流 OutputStream 字节输出流 Writer 字符输出流
输入流 InputStream 字节输入流 Reader 字符输入流

以上算是、四大基流都是抽象类,其他流都是继承四大流的。

  • 我们不能创建四大基流的对象只能创建其子类对象
  • 所有流都有关闭方法

操作I/O流的模板

1.创建源或者目标对象(挖井)
输入操作:把文件中的数据流向程序中,此时文件是源,程序是目标对象
输出操作:把程序中的数据流向文件中,此时程序是源,文件是目标对象

2.创建IO流对象(水管)
输入操作:创建输入流对象
输出操作:创建输出流对象

3.具体的I/O操作
输入操作:使用输入流对象的read()方法
输出操作:使用输出流对象的write()方法

4.关闭资源(勿忘)
输入操作:关闭流close()方法
输出操作:关闭流close()方法

I/O流的六字真言

读进来写出去
读进来,强调输入利用输入流的read()方法
写出去,强调输出利用输出流的write()方法

文件流

程序和文件之间的联系就是文件流
FileInputSteam:文件字节输入流
FileOutputSteam:文件字节输出流
FileReader:文件字符输入流
FileWriter:文件字符输出流

3.字节流

字节流暂时不要用中文

输出流

FileOutputSteam 示例:

public class FileSteamDome   {
    
    public static void main(String[] args) throws IOException{
        //1.创建源或目标文件
        File f = new File("D:/myDoc/123.txt");
        
        //2.创建IO流对象(建立水管)
        FileOutputStream fos = new FileOutputStream(f,true); 
        
        //3.实现IO操作
        //FileOutputStream 方法
        /*
         * void write(byte[] b) 
         * 将 b.length个字节从指定的字节数组写入此文件输出流。 
         *  
         * void write(byte[] b, int off, int len) 
         * 将 len字节从位于偏移量 off的指定字节数组写入此文件输出流。  
         * 
         *  
         */
        
        //传一个字节的情况
        fos.write(65);
        //传多个字节的情况
        String str = "好好学习天天向上";
        //将字符串赋值给一个字节数组,因为只有字节数组才能传输
        byte[] words = str.getBytes();
        //写到文件中
        fos.write(words,0,words.length);
        
        //4.关闭流
        fos.close();    
    }
    
}

Ps:FileOutputStream构造方法中有一个布尔值用来判断是否追加文字。
输入结果


输出流结果.PNG

输入流示例

public class FileInputSteamDome {
    public static void main(String[] args) throws IOException {
        //1.创建源
        File f = new File("D:/myDoc/123.txt");
        
        //2.创建IO流对象
        FileInputStream fis =  new FileInputStream(f);
        
        
        //3.实现IO操作
        /*
         * int read() 
         * 从该输入流读取一个字节的数据。  
         * int read(byte[] b) 
         * 从该输入流读取最多 b.length个字节的数据为字节数组。  
         * int read(byte[] b, int off, int len) 
         * 从该输入流读取最多 len字节的数据为字节数组。  
         * 
         */
        
        //读一个字节的情况
//      int data = fis.read();
//      System.out.println(data);
//      System.out.println(fis.read());
//      System.out.println(fis.read());
//      System.out.println(fis.read());
//      System.out.println(fis.read());
//      System.out.println(fis.read());
//      System.out.println(fis.read());
//      System.out.println(fis.read());//读不到东西就返回-1
        
        
        //读多个字节的情况
        //需要一个字符数组来接收数据
        byte[] buffer = new byte[1024];
        
        //需要有一个int类型变量来接收读取到的值
        int len ;
        /*
         * 1.因为不知道要循环多少次所以使用while循环
         * 2.现阶段所有数据都存储在buffer字节数组中要读取出来
         * 3.要利用String的构造方法String(byte[] bytes, int offset, int length)
         * 从第0个开始一直读到len的位置
         */
        while((len = fis.read(buffer))!= -1) {
            String str = new String(buffer, 0, len);
            System.out.println(str);
        }
        
        
        //4.关闭流
        fis.close();    
    }
}

打印结果

ABCDEFG
小结:
  • 利用字符流的时候要记得是流的是字节所以需要byte数组来接收
  • 使用I/O流进行传输数据的时候不要忘了四个步骤:
    1.创建源对象(挖井)
    2.创建IO对象(做管道)
    3.具体操作IO实现数据读写
    4.关闭流

相关文章

  • I/O流

    java常见的I/O流

  • Java中的I/O流

    谷歌I/O大会,现在赶一下时髦,在这里说一下Java的I/O流。I/O流可以简单的理解input/output流,...

  • JavaSE Day19 IO

    1. Java 中常用的 I/O 流常用类型在哪个包?常用类型有哪些? I/O 流的常用类型都在 java.io ...

  • I/O

    Java I/O 总结 理解Java中字符流与字节流的区别 深入学习 Java 序列化 Java I/O 操作及优...

  • Java I/O流(一)

    学习了Java中的i/o流来读取文件 1.File类的操作文件和目录属性2.字符流字节流讲解3.使用字节流读写文件...

  • Java-10 I/O流

    I/O流全称是Input/Output Stream,译为输入输出流 I/O流常用的类型都在java.io包中 类...

  • Java I/O流

    概念和作用 流:代表任何有能力产出数据的数据源对象或者是有能力接受数据的接收端对象流的本质:数据传输,根据数据传输...

  • Java I/O流

    文件的读写是java i/o流常用的也是最基础的操作,然而字节流,字符流,InputStream,OutpurSt...

  • Java I/O流

    1.简介 1.1继承结构 in/out相对于程序而言的输入(读取)和输出(写出)的过程。在Java中,根据处理的数...

  • Java基础知识15-I/O流1

    I/O的基础知识 流 Java 程序通过流执行 I/O. 流是一种抽象, 要么产生信息, 要么使用信息. 流通过 ...

网友评论

      本文标题:Java I/O流(一)

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