展开全部
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
import java.io.PrintWriter;
public class Day10A {
private BufferedReader br;// 字符效率读取流32313133353236313431303231363533e58685e5aeb931333431353932
private BufferedWriter bw;// 字符效率写出流
private PipedInputStream pis;// 管道读取流
private PipedOutputStream pos;// 管道输出流,
private byte[] readBytes;// 读取缓冲区
private byte[] writeBytes;// 写出缓冲区
private String path = "C:\\Users\\Administrator\\Desktop";
private File file = null;
private FileOutputStream fos = null;
Day10A() {
writeBytes = new byte[1024];
file = new File(path, "测试.txt");
try {
if (!file.exists()) {
file.createNewFile();
fos = new FileOutputStream(file);
} else {
fos = new FileOutputStream(file, true);
}
br = new BufferedReader(new InputStreamReader(System.in));
bw = new BufferedWriter(new PrintWriter(fos));
pis = new PipedInputStream();
pos = new PipedOutputStream();
pis.connect(pos);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Day10A d = new Day10A();
d.readFunction();
d.writerFunction();
}
private void readFunction() {
new Thread(new Runnable() {
public void run() {
while (true) {
try {
for (String str = br.readLine();!str.contentEquals("over"); str = br.readLine()) {
readBytes = str.getBytes();
pos.write(readBytes);
}
} catch (Exception e) {
}
break;
}
try {
pos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
private void writerFunction() {
new Thread(new Runnable() {
@Override
public void run() {
try {
String str = "";
for (int len = pis.read(writeBytes); len != -1; len = pis.read(writeBytes)) {
str = new String(writeBytes, 0, len);
bw.write(str + "\r\n");
bw.flush();
}
} catch (Exception e) {
}
}
}).start();
}
}