`
suoyihen
  • 浏览: 1362470 次
文章分类
社区版块
存档分类
最新评论

Java 中的IO

 
阅读更多

我对流的理解是:源到目的地的轨迹,所以流的一端是数据源(输入流)或者接收器(输出流),另一端是 io中的某个类;这里说明下, Scanner 不是 io类,这个从它的导入包就可以看出( java.util.Scanner ,我的理解 Scanner是个方便输入操作的工具类;

我把流分为 4类,字节级,字符级,对象级,其他;

一,字节级

1.文件输入 /输出流( FileInputStream/FileOutputStream)建立文件到本程序的流

2字节数组输入 /输出流( ByteArrayInputStream/ByteArrayOutputStream

3.数据输入 /输出流( DataInputStream /DataOutputStream

4缓存输入输出流( BufferedInputStream/BufferedOutputStream

5回退输入字节流( PushbackInputStream

6格式化输出流( PrintStream

二,字符级

1.FileReader/FileWriter

2.BufferedReader/BufferedWriter

3CharArrayReader/CharArrayWriter

4PushbackReader

5PrintWriter

三,对象级

ObjectInputStream/ObjectOutputStream

四,其他

StreamTokenizer

File

RandomAccessFile

另外还有三个标准系统流: System.in InputStream类型), System.out PrintStream类型), System.err InputStram类型);

System.out 和 System.err已经被封装成了PrintStream对象,因此具有强大的输出功能,而System.in却仍然是原始的InputStream,需要在使用是进行封装;

可以用 setIn(in) ,setOut(out),setErr(err)重新指定参数流为对应标准流

附上acm中常用的测试文件写法(linux)

//        FileInputStream fin = new FileInputStream("/home/bird/workspace/ACM/in.txt");

// PrintStream fout = new PrintStream("/home/bird/workspace/ACM/out.txt");

// System.setIn(fin);

// System.setOut(fout);
以下是读单个字符的方法
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
for(int i=0; i<2; ++i) {
char ch = (char) in.read();
System.out.println(ch);
}


//先打个框架,具体实例有时间了,再来添加

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics