Java I/O常用流示例


package io;
import java.io.*;
/**
* 利用缓冲区原理,BufferedInputStream,
* 实现的文件字节流读取功能示范
* @author 辉太郎
*/
public class BufferedInOutputStream {
public BufferedInOutputStream() {
ioTest2();
}
public void ioTest2() {
FileInputStream in = null ;
BufferedInputStream bi = null;
int i= 0;
int count=0;
try{
in = new FileInputStream("D:/j/o/java2.txt");
bi = new BufferedInputStream(in);
while(( i=bi.read())!=-1) {
System.out.print((char)i);
count++;
}
System.out.println(count);
in.close();
bi.close();
}catch (IOException e){
e.printStackTrace();
}
}
public static void main(String[] args) {

new BufferedInOutputStream();
}
}


package io;

import java.io.*;

/**
* 利用缓冲区原理,BufferedInputStream,
* 实现的文件字符流读取和写入功能示范
* @author 辉太郎
*/
public class BufferedReaderWriter {
public BufferedReaderWriter() {
bufferRdWter();
}

public void bufferRdWter() {
FileReader fr = null;
FileWriter wt = null;
BufferedReader br = null;
BufferedWriter bw = null;
String s = "";
try {
fr = new FileReader("D:/j/o/java.txt");
br = new BufferedReader(fr);
wt = new FileWriter("D:/j/o/javat2.txt");
bw = new BufferedWriter(wt);

while ((s = br.readLine()) != null) {

bw.write(s);
}

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {

try {
bw.flush();
wt.close();
bw.close();
br.close();
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
new BufferedReaderWriter();
}
}


package io;

import java.io.*;

/**
* 数据流,注意的是先进先出.数据流方便我们用IO输出基本数据类型的值.比如它提供readDouble();
* @author 辉太郎
*/
public class DataInOutputStream {
public DataInOutputStream() {
dataInOutputStream();
}

public void dataInOutputStream() {

ByteArrayOutputStream bs = new ByteArrayOutputStream();
DataOutputStream ds = new DataOutputStream(bs);

try {
ds.writeDouble(Math.random());
ds.writeBoolean(false);

// 其中bs.toByteArray()是把开始我们写入的东西放到这个字节数组中,然后我们从这个字节数组中取出数据
ByteArrayInputStream bi = new ByteArrayInputStream(bs.toByteArray());
DataInputStream di = new DataInputStream(bi);

System.out.println(di.available());
System.out.println(di.readDouble());
System.out.println(di.readBoolean());

di.close();
bi.close();
ds.close();
bs.close();

} catch (IOException e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
new DataInOutputStream();

}

}


package io;

import java.io.*;

/**
*
* FileInputStream/FileOutputStream的示例
* @author 辉太郎
*/
public class InOutputStream {
public InOutputStream() {
inOutputStream();
}

public void inOutputStream() {
InputStream is = null;
OutputStream os = null;
byte[] b;
int i = 0;
try {
is = new FileInputStream("D:/j/o/java2.txt");
os = new FileOutputStream("D:/j/o/java.txt");
b = new byte[is.available()];
while ((i = is.read(b)) != -1) {
os.write(b);
}

os.close();
is.close();

} catch (IOException e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
new InOutputStream();
}
}


package io;

import java.io.*;

/**
*
* 转换流示例,这个流最大的作用就是将字节流转换成字符流来用!
* @author 辉太郎
*/
public class InOutputStreamReaderWriter {
public InOutputStreamReaderWriter() {
inOutputReaderWriter();
}

public void inOutputReaderWriter() {
InputStreamReader ir = null;
OutputStreamWriter ow = null;
int i = 0;
try {
ir = new InputStreamReader(new FileInputStream("D:/j/o/java.txt"));
ow = new OutputStreamWriter(new FileOutputStream(
"D:/j/o/java2.txt", true), "ISO8859-1");// latin-1
System.out.println(ow.getEncoding());

while ((i = ir.read()) != -1) {
ow.write(i);
}
ow.write("java.io");
} catch (IOException e) {
e.printStackTrace();
} finally {

try {
ow.flush();
ow.close();
ir.close();
} catch (IOException e) {
e.printStackTrace();
}

}

}

public static void main(String[] args) {
new InOutputStreamReaderWriter();

}

}


package io;

import java.io.*;

/**
* InputStreamReader外面套一个BufferedReader,来实现接受控制台System.in输入的字符
*
* @author 辉太郎
*/
public class InputStreamSystemIn {
public InputStreamSystemIn() {
systemInIo();
}

public void systemInIo() {
String s = "";
InputStreamReader ir = null;
BufferedReader br = null;
ir = new InputStreamReader(System.in);
br = new BufferedReader(ir);

try {

while (s != null) {
s = br.readLine();
if (s.equals("2")) {
break;
} else {
System.out.println(s);
}
}
br.close();
ir.close();
} catch (IOException e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
new InputStreamSystemIn();
}
}


package io;

import java.io.*;

/**
* ObjectStream流,对象序列化
* @author 辉太郎
*/
public class ObjectStream {
public ObjectStream() {
objectStream();
}

public void objectStream() {
Test t = new Test();
try {
FileOutputStream fs = new FileOutputStream("D:/j/o/java.dat");
ObjectOutputStream oo = new ObjectOutputStream(fs);
oo.writeObject(t);

FileInputStream fi = new FileInputStream("D:/j/o/java.dat");
ObjectInputStream oi = new ObjectInputStream(fi);
Test tt = (Test) oi.readObject();
System.out.println(tt.d + " " + tt.i + " " + tt.k + " " + tt.s);

} catch (IOException e) {

e.printStackTrace();
} catch (ClassNotFoundException e) {

e.printStackTrace();
}
}

public static void main(String[] args) {

new ObjectStream();

}

}

class Test implements Serializable {
int i = 22;

int k = 11;

// 下面的transient关键字,作用是将d设为透明的,不存在的,然后在输出的时候就输出默认值
transient double d = 22.22;

String s = "string";
}

---------------------------------------

package io;

import java.io.*;

/**
* PrintStream 打印输出流.下面这个例子 它是通过设置System.setOut来指向我们FileOutputStream 指向的文件流
* 所以最后输出就是在这个java.txt文件里面
*
*/
public class PrintStreamTest {
PrintStreamTest() {
printStreamT();
}

public void printStreamT() {
PrintStream ps = null;
try {
FileOutputStream fis = new FileOutputStream("D:/j/o/java.txt");
ps = new PrintStream(fis);

if (ps != null) {
System.setOut(ps);
}

System.out.println("高枕吴忧");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
new PrintStreamTest();

}

}

-------------------------------------

package io;

import java.io.*;
import java.util.Date;

/**
* @author 高枕吴忧
* 利用PrintWriter实现的一个"虚假"的日志处理
*
*/
public class PrintWriterTest {

public PrintWriterTest() {
printWriter();
}

public void printWriter() {
String s = null;
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
try {
BufferedWriter bw =
new BufferedWriter(new FileWriter("D:/j/o/java.txt",true));
PrintWriter log =
new PrintWriter(bw);
while((s = br.readLine()) != null) {
if(s.equalsIgnoreCase("exit")){
break;
}
log.println(" - - - - - - - - - - - -");
log.println(s.toUpperCase());
log.flush();
}
log.println("===="+new Date()+"====");
log.flush();
log.close();

} catch (IOException e) {

e.printStackTrace();
}
}


public static void main(String[] args) {
new PrintWriterTest();

}

}

-------------------------------------

package io;

import java.io.*;

/**
* @author 高枕吴忧
* Reader/Writer字符输入输出流示例.
*
*/
public class ReaderWriter {
public ReaderWriter() {
readerWriter();
}
public void readerWriter() {
Reader rd = null;
Writer wt = null;
int i = 0 ;
try {
rd = new FileReader("D:/j/o/java.txt");
wt = new FileWriter("D:/j/o/javat2.txt");
while((i = rd.read()) != -1) {
wt.write(i);
}
wt.flush();
wt.close();
rd.close();

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new ReaderWriter();
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值