Java I/O
2021-10-14 14:36:37 17 举报
AI智能生成
Java I/O
作者其他创作
大纲/内容
按处理的数据单位不同
字节流
FileOutputStream类
FileInputStream类
字符流
FileWriter类
FileReader类
字节/字符流都可以通过传递一个字节/字符数组创建缓冲区读取
每次读取多个字节,减少了系统间的IO操作次数
从而提高读写的效率
每次读取多个字节,减少了系统间的IO操作次数
从而提高读写的效率
模板
// 定义变量,作为有效个数
int len ;
// 定义字节数组,作为装字节数据的容器(字符数组同理)
byte[] b = new byte[1024]; //数组大小一般开1024的倍数
// 循环读取
while (( len= fis.read(b))!=-1) {
// 每次读取后,把数组变成字符串打印
System.out.println(new String(b),0,len);// len 每次读取的有效字节个数
}
// 定义变量,作为有效个数
int len ;
// 定义字节数组,作为装字节数据的容器(字符数组同理)
byte[] b = new byte[1024]; //数组大小一般开1024的倍数
// 循环读取
while (( len= fis.read(b))!=-1) {
// 每次读取后,把数组变成字符串打印
System.out.println(new String(b),0,len);// len 每次读取的有效字节个数
}
按数据流方向不同
输入流
输出流
按功能不同
节点流
处理流
缓冲流
字节缓冲流
BufferedInputStream类
BufferedOutputStream类
字符缓冲流
BufferedReader类
BufferedWriter类
输出流数据追加续写:同理 在传递的输出流对象的构造方法中添加一个参数true
BufferedOutputStream(new FileOutputStream(String name,true))
BufferedWriter(new FileWriter(String name,true))
BufferedOutputStream(new FileOutputStream(String name,true))
BufferedWriter(new FileWriter(String name,true))
转换流
转换流是字节与字符间的桥梁
InputStreamReader类
OutputStreamWriter类
对象流
概念:对象序列化/反序列化
Java 提供了一种对象序列化的机制。用一个字节序列可以表示一个对象
该字节序列包含该对象的数据、对象的类型和对象中存储的属性等信息
字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息
反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化
对象的数据、对象的类型和对象中存储的数据信息,都可以用来在内存中创建对象
该字节序列包含该对象的数据、对象的类型和对象中存储的属性等信息
字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息
反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化
对象的数据、对象的类型和对象中存储的数据信息,都可以用来在内存中创建对象
ObjectOutputStream类
ObjectInputStream类
打印流
printStream类
构造方法
PrintStream(String fileName)使用指定的文件名创建一个新的打印流
PrintStream(OutputStream out)使用指定的字节输出流创建一个新的打印流
PrintStream(File file)使用指定的文件对象创建一个新的打印流
特有方法
void print(任意类型的值)
void println()
static void setOut(printStream out)改变打印流流向
public class PrintDemo {
public static void main(String[] args) throws IOException {
// 调用系统的打印流,控制台直接输出97
System.out.println(97);
// 创建打印流,指定文件的名称
PrintStream ps = new PrintStream("ps.txt");
// 设置系统的打印流流向,输出到ps.txt
System.setOut(ps);
// 调用系统的打印流,ps.txt中输出97
System.out.println(97);
}
}
public static void main(String[] args) throws IOException {
// 调用系统的打印流,控制台直接输出97
System.out.println(97);
// 创建打印流,指定文件的名称
PrintStream ps = new PrintStream("ps.txt");
// 设置系统的打印流流向,输出到ps.txt
System.setOut(ps);
// 调用系统的打印流,ps.txt中输出97
System.out.println(97);
}
}
数据流
都继承于四种抽象流类型
字节输出流OutputStream
字节输入流InputStream
字符输出流Writer
字符输入流Reader
属性集
java.util.Properties 继承于Hashtable,来表示一个持久的属性集。
它使用键值结构存储数据,每个键及其对应值都是一个字符串。
该类也被许多Java类使用,比如获取系统属性时,System.getProperties方法就是返回一个Properties对象。
它使用键值结构存储数据,每个键及其对应值都是一个字符串。
该类也被许多Java类使用,比如获取系统属性时,System.getProperties方法就是返回一个Properties对象。
构造方法
public Properties():创建一个空的属性列表
基本存储方法
Object setProperty(String key, String value): 保存一对属性
String getProperty(String key) :使用此属性列表中指定的键搜索属性值
Set<String> stringPropertyNames() :所有键的名称的集合
与流相关的方法
void load(InputStream inStream): 从字节输入流中读取键值对
0 条评论
下一页