Java IO流处理
Java IO流主要分为字符流(Reader、Writer)和字节流(InputStream、OutputSrteam)。
下图是所有IO流的类:
以下介绍常用的几种IO流处理:
1、BufferedReader
BufferedReaderTest
package Reader;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class BufferedReaderTest {
private static void read(String path){
File file = new File(path);
FileReader fr = null;
BufferedReader br = null;
try {
fr = new FileReader(file);
br = new BufferedReader(fr);
String line = null;
while((line = br.readLine())!=null){
System.out.println(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
br.close();
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
read("file");
}
}
2、BufferedWriter
BufferedWriterTest
package Writer;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class BufferedWriterTest {
private static void write(String path,String text){
FileWriter fw = null;
BufferedWriter bw = null;
try {
fw = new FileWriter(path);
bw = new BufferedWriter(fw);
bw.write(text+"\n");
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
bw.close();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入,以回车键结束:");
write("file",input.nextLine());
input.close();
}
}
3、BufferedInputStream、BufferedOutputStream
BufferedInputStreamTest
package Stream;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class BufferedInputStreamTest {
private static void input(String path){
FileInputStream fis = null;
BufferedInputStream bs = null;
FileOutputStream fos = null;
BufferedOutputStream bo = null;
byte[] buffer = new byte[256];
try {
fis = new FileInputStream(path);
bs = new BufferedInputStream(fis);
fos = new FileOutputStream(new File("file1"));
bo = new BufferedOutputStream(fos);
int len = 0;
while((len = bs.read(buffer))!= -1){
bo.write(buffer, 0, len);
bo.flush();
}
System.out.println("复制完成!");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
fis.close();
bs.close();
fos.close();
bo.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
input("file");
}
}
4、ObjectInputStream
ObjectStreamTest
package Reader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class ObjectStreamTest {
private static void write(String path){
FileInputStream fis = null;
ObjectInputStream ois = null;
FileOutputStream fos = null;
ObjectOutputStream oos = null;
try {
fos = new FileOutputStream(path);
oos = new ObjectOutputStream(fos);
oos.writeObject(new Book("Java","xc"));
oos.writeObject(new Book("C","xc"));
fis = new FileInputStream(path);
ois = new ObjectInputStream(fis);
for (int i = 0; i < 2; i++) {
System.out.println(ois.readObject());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}finally{
try {
oos.close();
fos.close();
ois.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
write("file");
}
}
Book.java
package Reader;
import java.io.Serializable;
public class Book implements Serializable{
private String name;
private String writer;
public Book(String name,String writer){
this.name = name;
this.writer = writer;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getWriter() {
return writer;
}
public void setWriter(String writer) {
this.writer = writer;
}
public String toString(){
return "Book:{name:"+name+",writer:"+writer+"}";
}
}