如何操作java中的IO流典型应用

    作者:课课家教育更新于: 2016-02-18 17:50:46

    大神带你学编程,欢迎选课

      尽管库内存在大量IO流类,可通过多种不同的方式组合到一起,但实际上只有几种方式才会经常用到。然而,必须小心在意才能得到正确的组合。下面这个相当长的例子展示了典型IO配置的创建与使用,可在写自己的代码时将其作为一个参考使用。注意每个配置都以一个注释形式的编号起头,并提供了适当的解释信息。

    如何操作java中的IO流的典型应用_java编程_javaIO流类_课课家

      //: iostreamDemo.java

      // Typical IO Stream Configurations

      import java.io.*;

      import com.bruceeckel.tools.*;

      public class IOStreamDemo {

      public static void main(String[] args) {

      try {

      // 1. Buffered input file

      DataInputStream in =

      new DataInputStream(

      new BufferedInputStream(

      new FileInputStream(args[0])));

      String s, s2 = new String();

      while((s = in.readLine())!= null)

      s2 += s + "\\n";

      in.close();

      // 2. Input from memory

      StringBufferInputStream in2 =

      new StringBufferInputStream(s2);

      int c;

      while((c = in2.read()) != -1)

      System.out.print((char)c);

      // 3. Formatted memory input

      try {

      DataInputStream in3 =

      new DataInputStream(

      new StringBufferInputStream(s2));

      while(true)

      System.out.print((char)in3.readByte());

      } catch(EOFException e) {

      System.out.println(

      "End of stream encountered");

      }

      // 4. Line numbering & file output

      try {

      LineNumberInputStream li =

      new LineNumberInputStream(

      new StringBufferInputStream(s2));

      DataInputStream in4 =

      new DataInputStream(li);

      PrintStream out1 =

      new PrintStream(

      new BufferedOutputStream(

      new FileOutputStream(

      "IODemo.out")));

      while((s = in4.readLine()) != null )

      out1.println(

      "Line " + li.gETLineNumber() + s);

      out1.close(); // finalize() not reliable!

      } catch(EOFException e) {

      System.out.println(

      "End of stream encountered");

      }

      // 5. Storing & recovering data

      try {

      DataOutputStream out2 =

      new DataOutputStream(

      new BufferedOutputStream(

      new FileOutputStream("Data.txt")));

      out2.writeBytes(

      "Here's the value of pi: \\n");

      out2.writeDouble(3.14159);

      out2.close();

      DataInputStream in5 =

      new DataInputStream(

      new BufferedInputStream(

      new FileInputStream("Data.txt")));

      System.out.println(in5.readLine());

      System.out.println(in5.readDouble());

      } catch(EOFException e) {

      System.out.println(

      "End of stream encountered");

      }

      // 6. Reading/writing random Access files

      RandomAccessFile rf =

      new RandomAccessFile("rtest.dat", "rw");

      for(int i = 0; i < 10; i++)

      rf.writeDouble(i*1.414);

      rf.close();

      rf =

      new RandomAccessFile("rtest.dat", "rw");

      rf.seek(5*8);

      rf.writeDouble(47.0001);

      rf.close();

      rf =

      new RandomAccessFile("rtest.dat", "r");

      for(int i = 0; i < 10; i++)

      System.out.println(

      "Value " + i + ": " +

      rf.readDouble());

      rf.close();

      // 7. File input shorthand

      InFile in6 = new InFile(args[0]);

      String s3 = new String();

      System.out.println(

      "First line in file: " +

      in6.readLine());

      in6.close();

      // 8. Formatted file output shorthand

      PrintFile out3 = new PrintFile("Data2.txt");

      out3.print("Test of PrintFile");

      out3.close();

      // 9. Data file output shorthand

      OutFile out4 = new OutFile("Data3.txt");

      out4.writeBytes("Test of outDataFile\\n\\r");

      out4.writeChars("Test of outDataFile\\n\\r");

      out4.close();

      } catch(FileNotFoundException e) {

      System.out.println(

      "File Not Found:" + args[0]);

      } catch(IOException e) {

      System.out.println("IO Exception");

      }

      }

      } ///:~

课课家教育

未登录