十二.IO流
BufferedIOTest.java
package cn.netjava.lesson16;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**
* Buffered流的测试类
*/
public class BufferedIOTest {
/**
* 主函数
*/
public static void main(String[] args) {
BufferedIOTest fiot = new BufferedIOTest();
fiot.copyFile("src/cn/netjava/lesson16/BufferedIOTest.java",
"src/cn/netjava/lesson16/BufferedIOTest.txt");
}
/**
* 读取一个文件的内容,并且输出在控制台
*/
public void copyFile(String path, String dest) {
try {
// 创建一个读取文件的输入流对象
InputStream is = new FileInputStream(path);
// 创建缓冲输入流对象
BufferedInputStream bis = new BufferedInputStream(is);
// 创建一个输出流对象
OutputStream os = new FileOutputStream(dest);
// 创建缓冲输出流对象
BufferedOutputStream bos = new BufferedOutputStream(os);
//得到文件的长度
int length = bis.available();
//创建一个数组对象
byte [] array = new byte[length];
bis.read(array);
bos.write(array);
bos.flush();//强制写入
//关闭
bis.close();
bos.close();
// 关闭
is.close();
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
FileIOTest.java
package cn.netjava.lesson16;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**
* File流的测试类
*/
public class FileIOTest {
/**
* 主函数
*/
public static void main(String[] args) {
FileIOTest fiot = new FileIOTest();
fiot.readFile("src/cn/netjava/lesson16/FileIOTest.java");
fiot.copyFile("src/cn/netjava/lesson16/FileIOTest.java","src/cn/netjava/lesson16/FileIOTest.txt");
}
/**
* 读取一个文件的内容,并且输出在控制台
*/
public void copyFile(String path,String dest){
try {
//创建一个读取文件的输入流对象
InputStream is = new FileInputStream(path);
//创建一个输出流对象
OutputStream os = new FileOutputStream(dest,true);
//循环读取文件的内容,并且写入文件
int value;
while((value = is.read()) != -1){
os.write(value);
}
//关闭
is.close();
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 读取一个文件的内容,并且输出在控制台
*/
public void readFile(String path){
try {
//创建一个读取文件的输入流对象
InputStream is = new FileInputStream(path);
int length = is.available();//获取文件的字节总数
//定义一个数组
byte [] array = new byte[length];
//循环判断是否到文件末尾
//int value,i=0;
//while((value = is.read())!=-1){
//array[i] = (byte)value;
//i++;
//}
//一次读取真个byte数组的长度
is.read(array);
//关闭
is.close();
String str = new String(array);
System.out.println(str);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
ObjectIOTest.java
package cn.netjava.lesson16;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import cn.netjava.lesson10.Student;
/**
* Object流的测试类
*/
public class ObjectIOTest {
/**
* 主函数
*/
public static void main(String[] args) {
ObjectIOTest fiot = new ObjectIOTest();
fiot.readFile(
"src/cn/netjava/lesson16/ObjectIOTest.txt");
}
/**
* 写入一个文件的内容
*/
public void writeFile(String path) {
try {
// 创建一个输出流对象
OutputStream os = new FileOutputStream(path);
// 创建缓冲输出流对象
ObjectOutputStream oos = new ObjectOutputStream(os);
//创建对象
Student stu = new Student("张三","201109001",19,10);
oos.writeObject(stu);//将对象写入到文件中
//关闭
oos.close();
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 写入一个文件的内容
*/
public void readFile(String path) {
try {
// 创建一个读取文件的输入流对象
InputStream is = new FileInputStream(path);
// 创建缓冲输入流对象
ObjectInputStream ois = new ObjectInputStream(is);
//创建对象
Student stu = (Student)ois.readObject();//将对象写入到文件中
System.out.println(stu.toString());
//关闭
ois.close();
is.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}