java输入输出流

从 Trac 迁移的文章

这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。

原文章内容如下:

 == erosion: ==
{{{

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.StringTokenizer;


public class Main {
    void run() {
        try {
            InputStream inputStream = new FileInputStream("input");
            InputReader in = new InputReader(inputStream);

            PrintWriter out = new PrintWriter(System.out,true);
            //PrintWriter默认不自动刷新,所以要加上true使其自动刷新才能正常输出。否则就要在最后加上out.flush()。

            int a;
            while (true) {
                try {
                    a = in.nextInt();
                    out.println(a);
                } catch (RuntimeException e) {
                    return;
                }
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }

    public static void main(String args[]) {
        new Main().run();  //
    }
}

class InputReader {
    public BufferedReader reader;
    public StringTokenizer tokenizer;  //token有英语单词的意思...

    public InputReader(InputStream stream) {
        reader = new BufferedReader(new InputStreamReader(stream), 32768);
        tokenizer = null;
    }
    public String next() {
        while (tokenizer == null || !tokenizer.hasMoreTokens()) {  //等于null判断是为了判断空行的情况
            try {
                tokenizer = new StringTokenizer(reader.readLine());
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
        return tokenizer.nextToken();
    }
    public int nextInt() { return Integer.parseInt(next()); }
    public double nextdouble() { return Double.parseDouble(next()); }
}

}}}

erosion:

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.StringTokenizer;
public class Main {
    void run() {
        try {
            InputStream inputStream = new FileInputStream("input");
            InputReader in = new InputReader(inputStream);
            PrintWriter out = new PrintWriter(System.out,true);
            //PrintWriter默认不自动刷新,所以要加上true使其自动刷新才能正常输出。否则就要在最后加上out.flush()。
            int a;
            while (true) {
                try {
                    a = in.nextInt();
                    out.println(a);
                } catch (RuntimeException e) {
                    return;
                }
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
    public static void main(String args[]) {
        new Main().run();  //
    }
}
class InputReader {
    public BufferedReader reader;
    public StringTokenizer tokenizer;  //token有英语单词的意思...
    public InputReader(InputStream stream) {
        reader = new BufferedReader(new InputStreamReader(stream), 32768);
        tokenizer = null;
    }
    public String next() {
        while (tokenizer == null || !tokenizer.hasMoreTokens()) {  //等于null判断是为了判断空行的情况
            try {
                tokenizer = new StringTokenizer(reader.readLine());
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
        return tokenizer.nextToken();
    }
    public int nextInt() { return Integer.parseInt(next()); }
    public double nextdouble() { return Double.parseDouble(next()); }
}