看下面几个程序
import java.io.*;
public class TestPrintStream1 {
public static void main(String[] args) {
PrintStream ps = null;
try {
FileOutputStream fos =
new FileOutputStream("d:\\bak\\log.dat");
ps = new PrintStream(fos); //相当于PrintStream ps = new PrintStream(new FileOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
if(ps != null){
System.setOut(ps); //输出,以前是System.out是指在命令行输出,而setOut改变输出环境
}
int ln = 0;
for(char c = 0; c <= 60000; c++){
System.out.print(c+ " ");
if(ln++ >=100){ System.out.println(); ln = 0;}
}
}
}
import java.io.*;
public class TestPrintStream2 {
public static void main(String[] args) {
String filename = args[0]; //在命令行中输入文件,存放在filename中
if(filename!=null){list(filename,System.out);} //执行list函数,后面定义的
}
public static void list(String f,PrintStream fs){
try {
BufferedReader br =
new BufferedReader(new FileReader(f)); //f为文件名
String s = null;
while((s=br.readLine())!=null){
fs.println(s);
}
br.close();
} catch (IOException e) {
fs.println("无法读取文件");
}
}
}
import java.util.*;
import java.io.*;
public class TestPrintStream3 {
public static void main(String[] args) {
String s = null;
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
try {
FileWriter fw = new FileWriter
("d:\\logfile.log", true); //创建一个文件,往里面写日志,不被覆盖
PrintWriter log = new PrintWriter(fw);
while ((s = br.readLine())!=null) { //当输入的部位空时
if(s.equalsIgnoreCase("exit")) break;
System.out.println(s.toUpperCase()); //转换成大写
log.println("-----"); //往文件里写-----
log.println(s.toUpperCase()); //往文件里写刚才输入的字符的大写
log.flush();
}
log.println("==="+new Date()+"==="); //推出以后增加日期
log.flush();
log.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}