package test;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.RandomAccessFile;
import java.io.StringReader;
public class TestIO {
public static void main(String[] args) throws IOException {
// 1.以行为单位从一个文件读取数据
BufferedReader in = new BufferedReader(new FileReader(
"H:\\java\\MyProject\\src\\test\\TestIO.java"));
String s, s2 = new String();
while ((s = in.readLine()) != null)
s2 += s + "\n";
in.close();
// 1b. 接收键盘的输入
BufferedReader stdin = new BufferedReader(new InputStreamReader(
System.in));
System.out.println("Enter a line:");
System.out.println(stdin.readLine());
// 2. 从一个String对象中读取数据
StringReader in2 = new StringReader(s2);
int c;
while ((c = in2.read()) != -1)
System.out.print((char) c);
in2.close();
// 3. 从内存取出格式化输入
try {
DataInputStream in3 = new DataInputStream(new ByteArrayInputStream(
s2.getBytes()));
while (true)
System.out.print((char) in3.readByte());
} catch (EOFException e) {
System.out.println("End of stream");
}
// 4. 输出到文件
try {
BufferedReader in4 = new BufferedReader(new StringReader(s2));
PrintWriter out1 = new PrintWriter(new BufferedWriter(
new FileWriter("F:\\nepalon\\TestIO.out")));
int lineCount = 1;
while ((s = in4.readLine()) != null)
out1.println(lineCount++ + ":" + s);
out1.close();
in4.close();
} catch (EOFException ex) {
System.out.println("End of stream");
}
// 5. 数据的存储和恢复
try {
DataOutputStream out2 = new DataOutputStream(
new BufferedOutputStream(new FileOutputStream(
"F:\\nepalon\\Data.txt")));
out2.writeDouble(3.1415926D);
out2.writeChars("\nThas was pi:writeChars\n");
out2.writeBytes("\nThas was pi:writeByte\n");
out2.close();
DataInputStream in5 = new DataInputStream(new BufferedInputStream(
new FileInputStream("F:\\nepalon\\Data.txt")));
BufferedReader in5br = new BufferedReader(
new InputStreamReader(in5));
System.out.println(in5.readDouble());
System.out.println(in5br.readLine());
System.out.println(in5br.readLine());
}
catch (EOFException e) {
System.out.println("End of stream");
}
// 6. 通过RandomAccessFile操作文件
RandomAccessFile rf = new RandomAccessFile("F:\\nepalon\\rtest.dat",
"rw");
for (int i = 0; i < 10; i++)
rf.writeDouble(i * 1.414);
rf.close();
rf = new RandomAccessFile("F:\\nepalon\\rtest.dat", "r");
for (int i = 0; i < 10; i++)
System.out.println("Value " + i + ":" + rf.readDouble());
rf.close();
rf = new RandomAccessFile("F:\\nepalon\\rtest.dat", "rw");
rf.seek(5 * 8);
rf.writeDouble(47.0001);
rf.close();
rf = new RandomAccessFile("F:\\nepalon\\rtest.dat", "r");
for (int i = 0; i < 10; i++)
System.out.println("Value " + i + ":" + rf.readDouble());
rf.close();
}
}
阅读(870) | 评论(0) | 转发(0) |