**
常用的串流类:
- FileOutputStream / FileInputStream
- ObjectOutputStream / ObjectInputStream
一、将序列化对象写入文件
1、创建出FIleOutputStream
FileOutputStream fileStream = new FileOutputStream("MyGame.ser");
2、创建出ObjectOutputStream
ObjectOutputStream os = new ObjectOutputStream(fileStream);
3、写入对象
os.writeObject(characterOne);
os.writeObject(characterTwo);
os.writeObject(characterThree);
4、关闭ObjectOutputStream
os.close();
二、将字符串写入文本文件
1、导入java.io.*;
import java.io*;
2、文件写入代码需要包括在try-catch块里面
3、实例化FileWriter
FileWriter writer = new FileWriter("Foo.txt");
4、记得关闭
writer.close();
完整代码:
import java.io.*;
class WriterAFile{
public static void main(String[] args)
{
try{
FileWiter writer = new FileWriter("Foo.txt");
writer.write("Hello foo!");
writer.close();
}catch(IOException ex)
{
ex.printStackTrace();
}
}
}
三、缓冲区
缓冲区的意义:你可以通过FileWriter来写入文件,也可以先写入BuffereWriter(缓冲区),再通过缓冲区链接FileWriter写入文件。看似缓冲区有点多余,但是直接使用FileWriter进行写入是对磁盘进行操作,而对缓冲区进行写入是对内存进行操作。每趟对磁盘操作会比进行内存操作花费更多时间。而先写入缓冲区,就类似去超市购物带了购物车,当装满了再去付钱会比拿一件商品付一次钱方便很多。
1、导入java.io.*
import java.io.*;
2、创建File类
File myFile = new File("MyText.txt");
3、创建FileReader类
FileReader fileReader = new File(myfile);//参数为上个文件对象
4、创建BufferedReader类
BufferedReader reader = new BufferedReader(fileReader);
5、使用BufferedReader类的readLine()方法
while((line = reader.readLine())!=null){
System.out.println(line);
}
注:以上全部代码均要放在try-catch块中
完整代码:
import java io.*;
class ReadAFile{
public void main(String[] args){
try{
File myFile = new File("MyText.txt");
FileReader fileReader = new File(myfile);//参数为上个文件对象
BufferedReader reader = new BufferedReader(fileReader);
String line =null;
while((line=reader.readerLine())!=null){
System.out.println(line);
}
reader.close();
}catch(IOException ex){
ex.printStackTrace();
}
}
}