import java.io.*;
public class TestIO{
public static void main(String[] args) throws IOException{
//1.以行为单位从一个文件读取数据
BufferedReader in =new BufferedReader(new FileReader(/"F:
epalonTestIO.java/"));
String s, s2 = new String();
while((s = in.readLine()) != null)
s2 += s + "//";
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.println((char)c);
in2.close();
//3. 从内存取出格式化输入
try{
DataInputStream in3 =new DataInputStream(new ByteArrayInputStream(s2.getBytes()));
while(true)
System.out.println((char)in3.readByte());
}
catch(EOFException e){
System.out.println(/"End of stream/");
}
//4. 输出到文件
try{
BufferedReader in4 =new BufferedReader(new StringReader(s2)); //把s2当作输入对象
PrintWriter out1 =new PrintWriter(new BufferedWriter(new FileWriter(/"F:epalon 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:epalon Data.txt/")));
out2.writeDouble(3.1415926);
out2.writeChars(" Thas was pi:writeChars ");
out2.writeBytes( "Thas was pi:writeByte ");
out2.close();
DataInputStream in5 = new DataInputStream(new BufferedInputStream(new FileInputStream(/"F:epalon 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:epalon rtest.dat/", /"rw/");
for(int i=0; i<10; i++)
rf.writeDouble(i*1.414);
rf.close();
rf = new RandomAccessFile(/"F:epalon rtest.dat/", /"r/");
for(int i=0; i<10; i++)
System.out.println(/"Value /" + i + /":/" + rf.readDouble());
rf.close();
rf = new RandomAccessFile(/"F:epalon rtest.dat/", /"rw/");
rf.seek(5*8);
rf.writeDouble(47.0001);
rf.close();
rf = new RandomAccessFile(/"F:epalon rtest.dat/", /"r/");
for(int i=0; i<10; i++)
System.out.println(/"Value /" + i + /":/" + rf.readDouble());
rf.close();
}
}