IO流框架
字节流
import java.io.FileInputStream;
import java.io.FileOutputStream;
/**
* @author Hanlin Wang
*/
public class FileStream {
public static void main (String[] args) throws Exception {
FileInputStream in = new FileInputStream("from.txt" );
byte [] buf = new byte [1024 ];
long start = System.currentTimeMillis();
int len = in.read(buf);
in.close();
System.out.println(new String(buf, 0 , len));
FileOutputStream out = new FileOutputStream("to.txt" );
out.write(buf, 0 , len);
out.close();
long end = System.currentTimeMillis();
System.out.println("运行时间为:" +(end - start));
}
}
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
/**
* @author Hanlin Wang
*/
public class BufferedStream {
public static void main (String[] args) throws Exception {
BufferedInputStream in = new BufferedInputStream(
new FileInputStream("from.txt" ));
byte [] buf = new byte [1024 ];
long start = System.currentTimeMillis();
int len = in.read(buf);
in.close();
System.out.println(new String(buf, 0 , len));
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("to.txt" ));
out.write(buf, 0 , len);
out.close();
long end = System.currentTimeMillis();
System.out.println("运行时间为:" +(end - start));
}
}
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
/**
* @author Hanlin Wang
*/
public class ByteArrayStream {
public static void main (String[] args) throws Exception{
ByteArrayInputStream in = new ByteArrayInputStream("whataya want from me" .getBytes());
ByteArrayOutputStream out2 = new ByteArrayOutputStream();
int len;
while ((len=in.read())!=-1 ) {
out2.write(len);
}
in.close();
out2.close();
FileOutputStream out = new FileOutputStream("to.txt" );
out.write(out2.toByteArray());
out.close();
}
}
import java.io .BufferedInputStream
import java.io .BufferedOutputStream
import java.io .DataInputStream
import java.io .DataOutputStream
import java.io .FileInputStream
import java.io .FileOutputStream
public class DataStream {
public static void main(String[] args) throws Exception{
//这里使用了三层装饰
FileOutputStream des = new FileOutputStream("to.txt" )
BufferedOutputStream buf = new BufferedOutputStream(des)
DataOutputStream out = new DataOutputStream(buf)
//运用DataOutputStream的相关方法写数据
out .writeBoolean (true)
out .writeByte (12 )
out .writeUTF ("您好" )
out .writeChar ('1' )
out .close ()
//读取to.txt 的数据
FileInputStream des2 = new FileInputStream("to.txt" )
BufferedInputStream buf2 = new BufferedInputStream(des2)
DataInputStream in = new DataInputStream(buf2)
//必须与之间写入到to.txt 的顺序相同
System.out .println (in .readBoolean ())
System.out .println (in .readByte ())
System.out .println (in .readUTF ())
System.out .println (in .readChar ())
//释放资源
in .close ()
}
}
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
/**
* @author Hanlin Wang
*/
public class ObjectStream {
public static void main (String[] args) throws Exception{
FileOutputStream out = new FileOutputStream("to.txt" );
ObjectOutputStream objout = new ObjectOutputStream(out);
Person p = new Person("张三" , 19 );
objout.writeObject(p);
objout.close();
FileInputStream in = new FileInputStream("to.txt" );
ObjectInputStream objin = new ObjectInputStream(in);
Person p2 = (Person) objin.readObject();
System.out.println(p2.toString());
objin.close();
}
}
class Person implements Serializable{
private String name;
private int age;
public Person (String name, int age) {
this .name = name;
this .age = age;
}
public String toString (){
return "姓名:" + name + " | 年龄:" + age;
}
}
import java.io.ByteArrayInputStream;
import java.io.FileOutputStream;
import java.io.SequenceInputStream;
import java.util.Enumeration;
import java.util.Vector;
/**
* @author Hanlin Wang
*/
public class SequenceStream {
public static void main (String[] args) throws Exception{
ByteArrayInputStream in = new ByteArrayInputStream(
"whataya want from me" .getBytes());
ByteArrayInputStream in2 = new ByteArrayInputStream(
"\nnever close our eyes" .getBytes());
in.close();
in2.close();
Vector<ByteArrayInputStream> v =
new Vector<ByteArrayInputStream>();
v.add(in);
v.add(in2);
Enumeration<ByteArrayInputStream> ele = v.elements();
SequenceInputStream ins = new SequenceInputStream(ele);
FileOutputStream out = new FileOutputStream("to.txt" );
int len;
while ((len=ins.read())!=-1 ) {
out.write(len);
}
ins.close();
out.close();
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
import java.io.PrintStream;
/**
* @author Hanlin Wang
*/
public class PipedStream {
public static void main (String[] args) throws Exception{
final PipedInputStream in = new PipedInputStream();
final PipedOutputStream out = new PipedOutputStream();
in.connect(out);
final PrintStream printer = new PrintStream(out);
final BufferedReader data = new BufferedReader(
new InputStreamReader(System.in));
final BufferedReader reader = new BufferedReader(
new InputStreamReader(in));
new Thread(new Runnable() {
public void run () {
while (true ) {
try {
String line = data.readLine();
System.out.println(Thread.currentThread().getName() + ",发送信息:" +line);
System.out.println("\n发送中...\n" );
Thread.sleep(5000 );
printer.println(line);
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}, "服务端线程" ).start();
new Thread(new Runnable() {
public void run () {
while (true ) {
try {
System.out.println(Thread.currentThread().getName()+",收到信息:" +reader.readLine());
} catch (IOException e) {
e.printStackTrace();
}
}
}
}, "客户端线程" ).start();
}
}
8、PrintStream
import java.io.FileOutputStream;
import java.io.PrintStream;
/**
* @author Hanlin Wang
*/
public class PrintStream_ {
public static void main (String[] args) throws Exception{
FileOutputStream out = new FileOutputStream("to.txt" );
PrintStream printer = new PrintStream(out);
Person p = new Person("李四" , 24 );
printer.println(p);
printer.print("Hello, it's me" );
printer.close();
}
}
字符流
1、FileReader&FileWriter
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/**
* @author Hanlin Wang
*/
public class FileReaderAndWriter {
public static void main (String[] args) throws IOException {
FileReader reader = new FileReader("from.txt" );
char [] buf = new char [1024 ];
int len = reader.read(buf);
reader.close();
String str = new String(buf, 0 , len);
System.out.println();
FileWriter writer = new FileWriter("to.txt" );
writer.write(str);
writer.close();
}
}
2、BufferedReader&BufferedWriter
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
/**
* @author Hanlin Wang
*/
public class BufferedReaderAndWriter {
public static void main (String[] args) throws Exception{
BufferedReader test = new BufferedReader(new FileReader("from.txt" ));
String line = null ;
while ((line=test.readLine())!=null ) {
System.out.println(line);
}
BufferedReader reader = new BufferedReader(new FileReader("from.txt" ));
char [] buf = new char [1024 ];
int len = reader.read(buf);
reader.close();
String str = new String(buf, 0 , len);
BufferedWriter writer = new BufferedWriter(new FileWriter("to.txt" ));
writer.write(str);
writer.close();
}
}
3、CharArrayReader&CharArrayWriter
import java.io.CharArrayReader;
import java.io.CharArrayWriter;
import java.io.FileWriter;
/**
* @author Hanlin Wang
*/
public class CharArrayReaderAndWriter {
public static void main (String[] args) throws Exception{
CharArrayReader reader = new CharArrayReader("u make me wanna" .toCharArray());
CharArrayWriter writer2 = new CharArrayWriter();
int len;
while ((len=reader.read())!=-1 ) {
writer2.write(len);
}
reader.close();
writer2.close();
FileWriter writer = new FileWriter("to.txt" );
writer.write(writer2.toCharArray());
writer.close();
}
}
4、PipedReader&PipedWriter
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PipedReader;
import java.io.PipedWriter;
import java.io.PrintWriter;
/**
* @author Hanlin Wang
*/
public class PipedReaderAndWriter {
public static void main (String[] args) throws Exception{
final PipedReader reader2 = new PipedReader();
final PipedWriter writer = new PipedWriter();
reader2.connect(writer);
final BufferedReader keyboard = new BufferedReader(
new InputStreamReader(System.in));
final PrintWriter pw = new PrintWriter(writer);
final BufferedReader reader = new BufferedReader(reader2);
new Thread(new Runnable() {
public void run () {
while (true ) {
try {
String line = keyboard.readLine();
System.out.println(Thread.currentThread().getName()
+ ",发送数据:" + line);
System.out.println("\n发送中...\n" );
Thread.sleep(3000 );
pw.println(line);
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}, "服务端线程" ).start();
new Thread(new Runnable() {
public void run () {
while (true ) {
try {
System.out.println(Thread.currentThread().getName()
+ ",收到数据:" +reader.readLine());
} catch (IOException e) {
e.printStackTrace();
}
}
}
}, "客户端线程" ).start();
}
}
5、PrintWriter
import java.io.CharArrayReader;
import java.io.CharArrayWriter;
import java.io.FileWriter;
import java.io.PrintWriter;
/**
* @author Hanlin Wang
*/
public class PrintWriter_ {
public static void main (String[] args) throws Exception{
CharArrayWriter writer = new CharArrayWriter();
PrintWriter pw = new PrintWriter(writer);
pw.println("hahaha" );
pw.close();
CharArrayReader reader = new CharArrayReader(writer.toCharArray());
int len;
while ((len=reader.read())!=-1 ) {
System.out.print((char )len);
}
reader.close();
}
}
6、StringReader&StringWriter
import java.io.StringReader;
import java.io.StringWriter;
/**
* @author Hanlin Wang
*/
public class StringReaderAndWriter {
public static void main (String[] args) throws Exception{
StringWriter writer = new StringWriter();
writer.write("whataya want from me" );
writer.close();
StringReader reader = new StringReader(writer.toString());
int len;
while ((len=reader.read())!=-1 ) {
System.out.print((char )len);
}
reader.close();
}
}