栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java基础-IO

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础-IO

一、IO概述

1. 什么是IO
java中I/O操作主要是指使用java.io 包下的内容,进行输入(input)、输出(output)操作。输入也叫做读取数据,输出也叫做写出数据。

2. 顶级父类

 3. IO的流向说明

                                ​​​​​​​        ​​​​​​​          

 二、字节流

1. 一切皆为字节
一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,一个一个字节,那么传输时一样如此。所以,字节流可以传输任意文件数据。在操作流的时候,无论使用什么样的流对象,底层传输的始终为二进制数据。

2. 字节输出流 OutputStream

java.io.OutputStream 抽象类是表示字节输出流的所有类的超类,将指定的字节信息写出到目的地。

OutputStream 定义了字节输出流的基本共性功能方法:

public void close();    // 关闭此输出流并释放与此流相关联的任何系统资源。
public void flush();    // 刷新此输出流并强制任何缓存的输出字节被写出。
public void write(byte[] b);    // 将字节数组写入此输出流。
public void write(byte[] b, int off, int len);    // 从指定的字节数组写入len字节,从偏移量off开始输出到此输出流。
public abstract void write(int b);    // 将指定的字节输出流

3. 文件输出流 FileOutputStream

java.io.FileOutputStream extends  OutputStream ,是文件输出流,用于将内存中的数据写出到硬盘的文件。

构造方法:

public FileOutputStream(File file);    // 创建文件输出流以写入由指定的File对象表示的文件。
public FileOutputStream(String name);    // 创建文件输出流以指定的名称写入文件。

参数:
        String name:目的地是一个文件的路径
        File file:目的地是一个文件

构造方法的作用:
        1. 创建一个FileOutputStream对象
        2. 会根据构造方法中传递的文件/文件路径,创建一个空的文件
        3. 会把FileOutputStream对象指向创建好的文件

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

4. 字节输入流 InputStream

java.io.InputStream 抽象类是表示字节输入流的所有类的超类,可以读取直接信息到内存中。

InputStream 定义了字节输入流的基本共性功能方法:

public void close();    // 关闭此输入流并释放此流相关联的任何系统资源。
public abstract int read();    // 从输入流读取数据的写一个字节。
public int read(byte[] b);      // 从输入流读取一些字节数,并将它们存储到直接数组b中。

5. 文件输入流 FileInputStream

java.io.FileInputStream extends  InputStream ,是文件输入流,从文件中读取字节。(把硬盘文件中的数据,读取到内存中使用)

构造方法:

public FileInputStream(File file);    // 通过打开与实际文件的连接来创建一个FileInputStream,该文件由文件系统中的File对象file命名。
public FileInputStream(String name);    // 通过打开与实际文件的连接来创建一个FileInputStream,该文件由文件系统中的路径名name命名。

参数:读取文件的数据源
        String name:文件的路径
        File file:文件

构造方法的作用:
        1. 会创建一个FileInputStream对象
        2. 会把FileInputStream对象指定构造方法中要读取的文件

三、数据追加续写和写出换行

数据追加续写:使用两个参数的构造方法

public FileOutputStream(File file, boolean append);    // 创建一个向指定File对象表示的文件中写入数据的文件输出流。
public FileOutputStream(String name, boolean append);    // 创建一个向指定name的文件中写入数据的文件输出流。
public FileWriter(File file, boolean append);    
pubic FileWriter(String name, boolean append);    

参数:
        String name,File file:写入数据的目的地
        boolean append:追加写开关
                true:创建对象不会覆盖源文件,继续在文件的末尾追加写数据。
                false:创建一个新文件,覆盖源文件。

写出换行:Windows系统里,换行符号是 rn 。

四、字符流

1. 字符输入流 Reader

java.io.Reader 抽象类是表示用于读取字符流的所有类的超类,可以读取字符信息到内存中。
定义了字符输入流的基本共性功能方法:

public void close();    // 关闭此流并释放与此流相关联的所有系统资源。
public int read();    // 从输入流读取一个字符。
public int read(char[] cbuf);    // 从输入流中读取一些字符,并将它们存储到字符数组cbuf中。

2. 文件字符输入流 FileReader

java.io.FileReader extends InputStreamReader extends Reader

作用:把硬盘文件中的数据以字符的方式读取到内存中

构造方法:

FileReader(String fileName);    // 创建一个新的FileReader,给定要读取的文件的名称。
FileReader(File file);    // 创建一个新的FileReader,给定要读取的文件的名称。

参数:读取文件的数据源
        String fileName:文件的路径
        File file:一个文件

FileReader 构造方法的作用:
        1.创建一个FileReader对象
        2. 会把FileReader对象指向要读取的文件

3. 字符输出流 Writer

java.io.Writer 抽象类是表示用于写出字符流的所有类的超类,将指定的字符信息写出到目的地。
定义了字符输出流的基本共性功能方法:

void write(int c);    // 写入单个字符。
void write(char[] cbuf);    // 写入字符数组。
void write(char[] cbuf, int off, int len);    // 写入字符数组的某一部分,off数组的开始索引,len写的字符个数。
void write(String str);    // 写入字符串。
void write(String str, int off, int len);    // 写入字符串的某一部分,off字符串的开始索引,len写的字符个数。
void flush();    // 刷线该流的缓冲。
void close();    // 关闭此流,但是要先刷线它。

2. 文件字符输出流 FileWriter

java.io.FileWriter  extends OutputStreamWriter  extends Writer 

作用:把内存中字符数据写入到文件中

构造方法:

FileWriter(String fileName);    // 创建一个新的FileWriter,给定要读取的文件的名称。
FileWriter(File file);    // 创建一个新的FileWriter,给定要读取的File对象。

参数:写入数据的没得打
        String fileName:文件的路径
        File file:一个文件

FileWriter  构造方法的作用:
        1. 创建一个FileWriter  对象
​​​​​​​        2. 会根据构造方法中传递的文件/文件的路径,创建文件
        2. 会把FileWriter  对象指向要创建好的文件

五、属性集

java.util.Properties集合 extends Hashtable。该类表示了一个持久的属性集,可保存在流中或从流中加载。Properties集合是一个唯一和IO流相结合的集合。
        可以使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储。
        可以使用Properties集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用。

1. 基本的存储方法:

public Object setProperty(String key, String value);    // 保存一对属性。
public String getProperty(String key);    // 使用此属性列表中指定的键搜索属性值。
public Set stringPropertyNames();    // 所有键的名称的集合。

2. 与流相关的方法:

// 持久化写入到硬盘中存储
void store(OutputStream out, String comments);    
void store(Writer writer, String comments);    

参数:
        1. OutputStream out:字节输出流,不能写入中文
​​​​​​​        2. Writer writer:字符输出流,可以写中文
​​​​​​​        3. String comments:注释,解释说明保存的文件(不能使用中文,一般使用" "空字符串)

// 把硬盘中保存的文件(键值对),读取到集合中使用
void load(InputStream inStream);
void load(Reader reader);

参数:
          1. InputStream inStream:字节输入流,不能读取中文
​​​​​​​          2. Reader reader:字符输入流,可以读取中文

注意:
        1. 存储键值对的文件中,键与值默认的连接符号可以使用空格、等号、冒号等符合分隔。
        2. 存储键值对的文件中,可以使用#注释,被注释的键值对不会被读取
​​​​​​​        3. 存储键值对的文件中,键与值默认都是字符串,不用加引号

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/270413.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号