IO流一

Posted xuweiweiwoaini

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IO流一相关的知识,希望对你有一定的参考价值。

1 Java IO原理

  • I/O是input/output的缩写,IO技术是非常实用的技术,用于处理设备之间的数据传输。如读写文件,网络通讯等。
  • Java程序中,对于数据的输入输出操作以“流Stream”的方式进行。
  • java.io包下提供了各种“流”类和接口,用来获取不同种类的数据,并通过标准的方法输入或输出数据。

 

  • 输入:读取外部数据(磁盘、光盘等存储设备的数据)到程序(内存)中。
  • 输出:将程序(内存)数据输出到磁盘、光盘等存储设备中。

技术图片

 

2 IO流的分类

2.1 按照操作数据单位的不同

  • 字节流
  • 字符流

2.2 按照数据流的流向不同

  • 输入流
  • 输出流

2.3 按照流的角色的不同

  • 节点流:直接从数据源源或目的地读写数据。
  • 处理流:不直接连接到数据源或目的地,而是“连接”在已存在的流(节点流或处理流)之上,通过对数据的处理为程序提供更为强大的读写功能。

2.4 抽象基类

技术图片

  • Java的IO流一共涉及到40多个类,实际上非常规则,都是从上面的4个抽象基类派生出来的。
  • 由这四个类派生出来的子类的名称大都是以其父类名作为子类名的后缀。

 

3 FileReader

  • 将文件的内容读取,一次只能读取一个字符,读取到文件末尾的时候返回-1。
public int read() throws IOException

 

  • 示例:
package day20;

import java.io.File;
import java.io.FileReader;
import java.io.IOException;

/**
 * 使用FileReader读取文件
 */
public class FileReaderTest 
    public static void main(String[] args) 
        File file = new File("D:" + File.separator + "a.txt");
        FileReader fileReader = null;
        try 
            fileReader = new FileReader(file);
            int ch;
            while (-1 != (ch = fileReader.read())) 
                System.out.print((char) ch);
            
         catch (Exception e) 
            e.printStackTrace();
         finally 
            if (null != fileReader) 
                try 
                    fileReader.close();
                 catch (IOException e) 
                    e.printStackTrace();
                
            
        

    

 

  • 读取文件的内容,一次可以读取指定长度的字符。
package day20;


import java.io.File;
import java.io.FileReader;
import java.io.IOException;

/**
 * 使用FileReader读取文件
 */
public class FileReaderTest 
    public static void main(String[] args) 
        File file = new File("D:" + File.separator + "a.txt");
        FileReader fileReader = null;
        try 
            fileReader = new FileReader(file);

            char[] buffer = new char[1024];
            int len = 0 ;
            while (-1 != (len = fileReader.read(buffer)))
                System.out.print(new String(buffer,0,len));
            
         catch (Exception e) 
            e.printStackTrace();
         finally 
            if (null != fileReader) 
                try 
                    fileReader.close();
                 catch (IOException e) 
                    e.printStackTrace();
                
            
        

    

 

4 FileWriter

  • 示例: 
package day20;


import java.io.File;
import java.io.FileReader;
import java.io.IOException;

/**
 * 使用FileReader读取文件
 */
public class FileReaderTest 
    public static void main(String[] args) 
        File file = new File("D:" + File.separator + "a.txt");
        FileReader fileReader = null;
        try 
            fileReader = new FileReader(file);

            char[] buffer = new char[1024];
            int len = 0 ;
            while (-1 != (len = fileReader.read(buffer)))
                System.out.print(new String(buffer,0,len));
            
         catch (Exception e) 
            e.printStackTrace();
         finally 
            if (null != fileReader) 
                try 
                    fileReader.close();
                 catch (IOException e) 
                    e.printStackTrace();
                
            
        

    

 

  • 如果FileWriter

 

以上是关于IO流一的主要内容,如果未能解决你的问题,请参考以下文章

第4章 IO流相关案例

IO流一

阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_04 IO字节流_11_字节输入流一次读取多个字节

IO流一

Java中的IO流

1[简答题] 字节输出流写出字节数据 利用字节输出流一次写一个字节的方式,向D盘的a.txt文件输出字符‘a’。