字节流&字符流&IO资源处理&Properties&ResourceBundle

本文详细介绍了Java中的字节流和字符流,包括字节输入流的基本使用、文件复制,字符流的读写操作,以及IO资源的异常处理。同时,讨论了Properties集合和ResourceBundle工具类的使用,方便处理资源文件。
摘要由CSDN通过智能技术生成

字节流&字符流&IO资源处理&Properties&ResourceBundle

- 能够使用字节输入流读取数据到程序
	//1.创建FileInputStream对象,构造方法中绑定要读取的数据源
	FileInputStream fis = new FileInputStream("day15\\a.txt");
	//2.FileInputStream对象中的方法read,以字节的方式读取文件
	int len = 0;
	while ((len = fis.read())!=-1){
   
		System.out.print((char)len);
	}
	//3.释放资源
	fis.close();
- 能够理解读取数据read(byte[])方法的原理
	1.read方法的参数byte[]字节数组的作用?
		一次可以读取多个字节,存储到数组中,这样可以提高读取的效率,减少循环的次数
	2.read方法的返回值int是什么?
		每次读取到的有效字节个数
	FileInputStream fis = new FileInputStream("day15\\a.txt");
	byte[] bytes = new byte[1024];
	int len = 0;
	while ((len = fis.read(bytes))!=-1){
   
		System.out.print(new String(bytes,0,len));
	}
	fis.close();	
- 能够使用字节流完成文件的复制(一读一写)
	1.创建FileInputStream对象,构造方法中绑定要读取的数据源
	2.创建FileOutputStream对象,构造方法中绑定要写的目的地
	3.使用FileInputStream对象中的方法read,以字节的方式读取文件
	4.使用FileOutputStream对象中的方法write,把读取到的字节写入到文件中
	5.释放资源
- 能够使用FileWriter写数据的5个方法
	- public void write(int c) :写出一个字符。
	- public void write(char[] cbuf) 写字符数组中的多个字符
	- public abstract void write(char[] b, int off, int len) 写字符数组的一部分
	- public void write(String str) :写出一个字符串。
	- void write(String str, int off, int len) 写入字符串的某一部分。
- 能够说出FileWriter中关闭和刷新方法的区别
	- flush :刷新缓冲区,把内存缓冲区中的数据刷新到文件中,刷新完后,流对象可以继续使用。
	- close :关闭流,释放系统资源。关闭前会刷新缓冲区。把内存缓冲区中的数据刷新到文件中,流关闭之后就不能在使用了
- 能够使用FileWriter写数据实现换行和追加写
	1.续写(追加写):使用两个参数的构造方法
		FileWriter(File file, boolean append)
		FileWriter(String fileName, boolean append)
	2.换行:使用换行符号
		windows:\r\n
		linux: /n
		mac: /r  从Mac OS X开始与linux统一		
- 能够使用FileReader读数据一次一个字符
	//1.创建FileReader对象,构造方法中绑定要读取的数据源
	FileReader fr = new FileReader("day15\\c.txt");
	//2.使用FileReader对象中的方法read,以字符的方式读取文件
	//public int read() 一次读取一个字符并返回
	int len = 0;
	while ((len = fr.read())!=-1){
   
		System.out.print((char)len);
	}
	//3.释放资源
	fr.close();
- 能够使用FileReader读数据一次一个字符数组
	//1.创建FileReader对象,构造方法中绑定要读取的数据源
	FileReader fr = new FileReader("day15\\c.txt");
	//2.使用FileReader对象中的方法read,以字符的方式读取文件
	//public int read() 一次读取一个字符并返回
	char[] chars = new char[1024];
	int len = 0;
	while ((len =fr.read(chars))!=-1){
   
		System.out.println(new String(chars,0,len));
	}
	//3.释放资源
	fr.close();
- 能够使用Properties的load方法加载文件中配置信息(必须会)
	//1.创建Properties集合对象
	Properties prop = new Properties();
	//2.使用Properties集合对象中的方法load,把硬盘中保存键值对的文件,读取到内存中使用
	//prop.load(new FileInputStream("day15\\prop.properties"));
	prop.load(new FileReader("day15\\prop.properties"));
	//3.遍历Properties集合
	Set<String> set = prop.stringPropertyNames();
	for (String key : set) {
   
		String value = prop.getProperty(key);
		System.out.println(key+"\t"+value);
	}

第一章 字节流

1.字节输入流的介绍(了解)

java.io.InputStream:字节输入流
	此抽象类是表示字节输入流的所有类的超类。
	InputStream里边定义了所有字节输入流共性的成员方法,所有的字节输入流都可以使用这些方法
共性的成员方法:
	int read() 从输入流中读取数据的下一个字节。
	int read(byte[] b)从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。
	void close() 关闭此输入流并释放与该流关联的所有系统资源。
java.io.FileInputStream:文件字节输入流 extends InputStream
作用:
	把文件中的数据,以字节的方式读取到内存中
构造方法:
	FileInputStream(File file)
	FileInputStream(String name) 
	参数:传递要读取的数据源
		String name:要读取的数据源是一个文件的路径
		File file:要读取的数据源是一个文件
	构造方法的作用:
		1.会创建FileInputStream对象
		2.会把创建好的FileInputStream对象指向要读取文件的第一个字节   
	注意:
		使用构造方法创建对象,如果要读取的文件不存在,会抛出文件找不到异常
使用字节输入流读取文件到内存中底层原理:
	java程序==>JVM==>操作系统==>调用系统中读取文件的方法==>读取文件                    

2.字节输入流的基本使用:一次读取一个字节(重点)

package com.itheima.demo01InputStream;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/*
    字节输入流的基本使用:一次读取一个字节(重点)
    int read() 一次从文件中读取一个字节并返回 返回值int:读取到的字节
    使用步骤:
        1.创建FileInputStream对象,构造方法中绑定要读取的数据源(文件,文件路径)
        2.使用FileInputStream对象中的方法read,以字节的方式读取文件
        3.释放资源(关闭此输入流并释放与该流关联的所有系统资源)
    注意:
        读取文件的前提,是文件必须存在,否则会抛出:文件找不到异常
        FileNotFoundException: day16\1.txt (系统找不到指定的文件。)
 */
public class Demo01FileInputStream {
   
    public static void main(String[] args) throws IOException {
   
        //1.创建FileInputStream对象,构造方法中绑定要读取的数据源(文件,文件路径)
        FileInputStream fis = new FileInputStream("day16\\1.txt");
        //2.使用FileInputStream对象中的方法read,以字节的方式读取文件
        //int read() 一次从文件中读取一个字节并返回
        int len = fis.read();
        System.out.println(len);//97

        len = fis.read();
        System.out.println(len);//98

        len = fis.read();
        System.out.println(len);//99

        len = fis.read();
        System.out.println(len);//-1

        //3.释放资源(关闭此输入流并释放与该流关联的所有系统资源)
        fis.close();
    }
}

使用循环优化

package com.itheima.demo01InputStream;

import java.io.FileInputStream;
import java.io.IOException;

/*
    字节输入流的基本使用:一次读取一个字节(重点)
    int read() 一次从文件中读取一个字节并返回 返回值int:读取到的字节
    使用步骤:
        1.创建FileInputStream对象,构造方法中绑定要读取的数据源(文件,文件路径)
        2.使用FileInputStream对象中的方法read,以字节的方式读取文件
        3.释放资源(关闭此输入流并释放与该流关联的所有系统资源)
    注意:
        读取文件的前提,是文件必须存在,否则会抛出:文件找不到异常
        FileNotFoundException: day16\1.txt (系统找不到指定的文件。)
 */
public clas
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值