带Input的就是“读”用的,带Output的就是“写”用的。

解决方案 »

  1.   

    理解流的概念,熟悉过滤器,会用读写器。  that's all
      

  2.   

    package myprojects.fileio;import java.io.FileReader;public class FileIO {

    public FileIO() {
    }
    public void getFileStrings() {
    try {
    char[] b= new char[100];
      FileReader fr = new FileReader("c:/abc.txt");
      fr.read(b) ;
      System.out.println(b);
    //fr.read(b, 1, 100);
    } catch (Exception e) {
    }
    } public static void main(String args[]) {
    System.out.println("Starting FileIO...");
    FileIO FileIO1 = new FileIO();
    FileIO1.getFileStrings();
    }
    }
      

  3.   

    我认为比较经典的一个I/O的例子,着重看关于IO的代码
    //: c12:IOStreamDemo.java
    // Typical I/O stream configurations.
    // {RunByHand}
    // {Clean: IODemo.out,Data.txt,rtest.dat}
    import com.bruceeckel.simpletest.*;
    import java.io.*;public class IOStreamDemo {
      private static Test monitor = new Test();
      // Throw exceptions to console:
      public static void main(String[] args)
      throws IOException {
        // 1. Reading input by lines:
        BufferedReader in = new BufferedReader(
          new FileReader("IOStreamDemo.java"));
        String s, s2 = new String();
        while((s = in.readLine())!= null)
          s2 += s + "\n";
        in.close();    // 1b. Reading standard input:
        BufferedReader stdin = new BufferedReader(
          new InputStreamReader(System.in));
        System.out.print("Enter a line:");
        System.out.println(stdin.readLine());    // 2. Input from memory
        StringReader in2 = new StringReader(s2);
        int c;
        while((c = in2.read()) != -1)
          System.out.print((char)c);    // 3. Formatted memory input
        try {
          DataInputStream in3 = new DataInputStream(
            new ByteArrayInputStream(s2.getBytes()));
          while(true)
            System.out.print((char)in3.readByte());
        } catch(EOFException e) {
          System.err.println("End of stream");
        }    // 4. File output
        try {
          BufferedReader in4 = new BufferedReader(
            new StringReader(s2));
          PrintWriter out1 = new PrintWriter(
            new BufferedWriter(new FileWriter("IODemo.out")));
          int lineCount = 1;
          while((s = in4.readLine()) != null )
            out1.println(lineCount++ + ": " + s);
          out1.close();
        } catch(EOFException e) {
          System.err.println("End of stream");
        }    // 5. Storing & recovering data
        try {
          DataOutputStream out2 = new DataOutputStream(
            new BufferedOutputStream(
              new FileOutputStream("Data.txt")));
          out2.writeDouble(3.14159);
          out2.writeUTF("That was pi");
          out2.writeDouble(1.41413);
          out2.writeUTF("Square root of 2");
          out2.close();
          DataInputStream in5 = new DataInputStream(
            new BufferedInputStream(
              new FileInputStream("Data.txt")));
          // Must use DataInputStream for data:
          System.out.println(in5.readDouble());
          // Only readUTF() will recover the
          // Java-UTF String properly:
          System.out.println(in5.readUTF());
          // Read the following double and String:
          System.out.println(in5.readDouble());
          System.out.println(in5.readUTF());
        } catch(EOFException e) {
          throw new RuntimeException(e);
        }    // 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();
        monitor.expect("IOStreamDemo.out");
      }
    } ///:~
      

  4.   

    toWnyu(西门吹水) 
    运行错误!
    Exception in thread "main" java.lang.NoClassDefFoundError: FileIO (wrong name: m
    yprojects/fileio/FileIO)
            at java.lang.ClassLoader.defineClass0(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
    3)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
            at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
    请按任意键继续 . . .
      

  5.   

    tostar821116(冰冻三尺非一日之寒) 
    无法编译
      

  6.   

    如果你是用JBuilder, JCreator pro等工具的话, 只要重新Builder Project就行了,否则你要编绎时加入-classPath
      

  7.   

    to CD2(白天睡觉的男人):
    这个当然无法编译,看第一句import就知道了,没有这个包嘛
    我举这个例子的目的是看看I/O的用法
      

  8.   

    star821116(冰冻三尺非一日之寒) : 这是java编程思想上的关于i/o的讲解.我也非常喜欢...
      

  9.   

    总体上,有两种分类,输入和输出,针对byte流和字符流(reader和writer那几个类)
    byte流是八位的,字符流是16位的,支持unicode字符集
    使用的基本方法是对象组合,其中一些类支持基本的输入输出(FileInputStream,ObjectInputStream等等),其他一些类支持为基本的流添加功能,比如BufferedInputStream就可以为流增加内部缓冲功能从而可以提高性能等等,这些修饰类大都继承自Filter********类
    找一个类图看一下,就会很明了,star的例子来自tij吧,楼主可以找一本看看呀