package com.situ.chapter2;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
public class testall {
public static void main(String[] args) throws IOException, ClassNotFoundException {
//byte FileInputStream
//char FileReader
//object ObjectOutputStream
byteinout();//字节输入输出流
charinout();//字符输入输出流
objectinout();//对象输入输出流
}
private static void objectinout() throws IOException, ClassNotFoundException {
// TODO 自动生成的方法存根 向目标文件存一个对象,然后取出输出到控制台
Employee em1=new Employee("张三丰","nan");//对象em1
File target=new File("C:\Users\11251\Desktop\aaa.dat");
if(!target.exists()) {//判断存在,否则创建新文件
target.createNewFile();
}
OutputStream out=new FileOutputStream(target);//输出流
ObjectOutputStream out1=new ObjectOutputStream(out);
out1.writeObject(em1);
out1.close();
File file=new File("C:\Users\11251\Desktop\aaa.dat");
InputStream in=new FileInputStream(file);//创建输入流
ObjectInputStream in1=new ObjectInputStream(in);
Employee object = (Employee) in1.readObject();//序列化
in1.close();
System.out.println(object.getName());
System.out.println(object.getSex());
}
private static void charinout() throws IOException {
// TODO 自动生成的方法存根
File file = new File("C:\Users\11251\Desktop\aaa.txt");
File target = new File("C:\Users\11251\Desktop\bbb.txt");
if(!target.exists()) {//判断存在,否则创建新文件
target.createNewFile();
}
FileReader reader=new FileReader(file); //写入流对象
FileWriter writer =new FileWriter(target,true);//写出流对象
BufferedReader br = new BufferedReader(reader);//缓冲流
// System.out.println(br.readLine());//只读一遍
String data=null;
while((data=br.readLine())!=null) {
writer.write(data+"n");
writer.flush();
}
}
private static void byteinout() throws IOException{
// TODO 自动生成的方法存根
File file = new File("C:\Users\11251\Desktop\aaa.txt");
File target = new File("C:\Users\11251\Desktop\bbb.txt");
if(!target.exists()) {//判断存在,否则创建新文件
target.createNewFile();
}
FileInputStream fis = new FileInputStream(file);
FileOutputStream fos = new FileOutputStream(target,true);
byte[] b=new byte[2222];
int data =0;
while((data=fis.read(b))!=-1) {
fos.write(b, 0, data);//读取b,从0到data
}
fis.close();
fos.close();
}
}
byte FileInputStream
char FileReader
object ObjectOutputStream
数据流基本类型
IO:input/output,输入输出 BIOS:basic input/output system
数据从一个地方转移到另一个地方。
流按方向分成两种:
1.输入流:从数据源流到程序中(内存)。InputStream
2.输出流:从程序中(内存)流到目标位置。OutputStream
流按流动的单位分成两种:
1. 字节流:流动的单位是字节。
2. 字符流:流动的单位是字符。FileReader 文件字符输入流



