/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.ithings.common;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.RandomAccessFile;
import java.io.Reader;
import java.io.Writer;
/**
*
* @author Administrator
*/
public class InputOutput {
/************ 输入流 ********************/
public void InputStreamTest() throws Exception {
//创建字节输入流对象
InputStream in = new FileInputStream("abc.txt");
//方法1 一次读取一个字节
int result = 0;
while ((result = in.read()) != -1) {
System.out.print((char) result);
}
in.close();
//方法2 一次读取一组字节
byte[] buffer = new byte[10];
int len = 0;
while ((len = in.read(buffer)) != -1) {
for (int i = 0; i < len; i++) {
System.out.print((char) buffer[i]);
}
}
in.close();
}
public void ReaderTest() throws Exception{
// 创建字符输入流对象
Reader reader = new FileReader("abc.txt");
char[] buffer = new char[1024];
int len = 0;
while ((len = reader.read(buffer)) != -1) {
for (int i = 0; i < len; i++) {
System.out.print(buffer[i]);
}
}
reader.close();
}
/************ 输出流 ********************/
public void OutputStreamTest() throws Exception{
//1.从字符串输出到文件
String ss = "hello java!" ;
//1.1 创建字节输出流对象
OutputStream out = new FileOutputStream("hello.txt");
//1.2 write
out.write(ss.getBytes());
out.close();
//2.从输入流中读取
//2.1 创建输入流对象,用于读取文件
InputStream in = new FileInputStream("java.avi");
//2.2 创建输出流对象,用于存取文件
OutputStream out = new FileOutputStream("java2.avi");
//2.3 定义数组,用于存储读取的字节
byte[] buffer = new byte[1024];
int len = 0;
//2.4 读写文件
while ((len = in.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
//2.5 关闭资源
out.close();
in.close();
}
public void WriterTest() throws Exception{
//1.创建字符输入输出流
Reader reader = new FileReader("hello.txt");
Writer writer = new FileWriter("hello2.txt");
//2.创建字符数组
char[] buffer = new char[1024];
int len = 0;
//3.读写文件
while ((len = reader.read(buffer)) != -1) {
writer.write(buffer, 0, len);
}
//4.关闭资源
writer.close();
reader.close();
}
/************ 包装流 ********************/
public void BufferedInputOutputTest() throws Exception{
//1.创建BufferedInputStream和BufferedOutputStream
BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream("hello.txt"));
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream("hello2.txt"));
//2.创建字节数组
byte[] buffer = new byte[1024];
int len = 0;
//3.进行读写操作
while ((len = bufferedInputStream.read(buffer)) != -1) {
bufferedOutputStream.write(buffer, 0, len);
}
//4.关闭资源
bufferedInputStream.close();
bufferedOutputStream.close();
}
public void BufferedReaderWriterTest() throws Exception{
//1.创建BufferedReader和BufferedWriter
BufferedReader bufferedReader = new BufferedReader(new FileReader("hello.txt"));
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("hello2.txt"));
//2.进行读写操作
String str = "";
int i = 0;
while ((str = bufferedReader.readLine()) != null) {
if (i > 0) {
bufferedWriter.write("\n");
}
bufferedWriter.write(str);
i++;
}
//关闭资源
bufferedReader.close();
bufferedWriter.close();
}
/************ 转换流 ********************/
public void InputStreamReaderTest() throws Exception{
//1.将文件读取到字节流中
InputStream in = new FileInputStream("hello.txt");
//2.使用转换流转换为字符流
Reader reader = new InputStreamReader(in);
//3.将字符流放到缓冲流中
BufferedReader bufferedReader = new BufferedReader(reader);
//4.逐行读取
String str = null;
while((str = bufferedReader.readLine()) != null){
System.out.println(str);
}
//5. 关闭流
bufferedReader.close();
reader.close();
in.close();
}
public void OutputStreamWriterTest() throws Exception{
//1.创建字节输出流
OutputStream out = new FileOutputStream("hello2.txt");
//2.使用转换流转换为字符流
Writer writer = new OutputStreamWriter(out);
}
/************ 对象流 ********************/
public void ObjectOutputStreamTest() throws Exception{
//1. 创建输出流对象
OutputStream out = new FileOutputStream("d://hello.txt");
//2.使用ObjectOutputStream把对象写到硬盘上
ObjectOutputStream objOut = new ObjectOutputStream(out);
Student student = new Student("lucy","famale");
objOut.writeObject(student);
//关闭流
out.close();
objOut.close();
}
public void ObjectInputStreamTest() throws Exception{
//1. 将文件读取到输入流
InputStream in = new FileInputStream("d://hello.txt");
//2. 使用ObjectInputStream读取对象
ObjectInputStream objIn = new ObjectInputStream(in);
Object obj = objIn.readObject();
//3. 关闭流
objIn.close();
in.close();
}
public void RandomAccessFileTest() throws Exception{
RandomAccessFile randomAccessFile = new RandomAccessFile("d://hello.txt","rw");
//读取文件
String str = null;
while((str = randomAccessFile.readLine()) != null){
System.out.print(str);
}
//向文件中写入
str = "Hello Java!";
randomAccessFile.writeBytes(str);
}
}