字节流&字符流&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