重定向流
标准输入输出流
1) 标准I/O流就是指System.in、System.out、System.err这三个,分表表示标准输入流、标准输出来、标准错误流;
2) 三者默认的流节点分别是键盘、屏幕、屏幕,这也是我们频繁使用的三个I/O流;
标准流重定向
i. static void setIn(InputStream in); // 重定向标准输入流
ii. static void setOut(PrintStream out); // 重定向标准输出流
iii. static void setErr(PrintStream err); // 重定向标准错误流 (这三个流查找API查找System)
可以看到两个输出流必须要用处理流来重定向(当然必须要确定底层的流结点),而输入流一般用一个节点流来重定向就行了。
RandomAccessFile 该类可以作为输入流,也可以作为输出流,同时既可以作为输出也可作为输入
package org.lanqiao.system.demo;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.util.Scanner;
public class SystemDemo {
public static void main(String[] args) throws FileNotFoundException {
//重定向System.out 将标准输出流输出到屏幕 重定向到输出到文件
/*i. static void setIn(InputStream in); // 重定向标准输入流
ii. static void setOut(PrintStream out); // 重定向标准输出流
iii. static void setErr(PrintStream err); // 重定向标准错误流*/
PrintStream ps = new PrintStream("ps.txt");
//System.setOut(ps);
System.out.print("aaaaaaaaaaaaa");
System.setErr(ps);
System.err.println("bbbbbbbbbbb");
System.setIn(new FileInputStream("ps.txt"));
Scanner sc = new Scanner(System.in);
System.out.println(sc.nextLine());
}
}
package org.lanqiao.system.demo;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
public class RandomAccessDemo {
public static void main(String[] args) throws IOException {
RandomAccessFile raf = new RandomAccessFile("Notes.txt","rw");
String s = raf.readLine();
//String s = raf.readUTF();
long l = raf.getFilePointer();
System.out.println(l);
System.out.println(s.getBytes("ISO-8859-1").length);
System.out.println(new String(s.getBytes("ISO-8859-1"),"UTF-8"));
}
}