Java代码
packagestar20110526;
importjava.io.BufferedInputStream;
importjava.io.BufferedOutputStream;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.FileReader;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.io.PrintStream;
importjava.io.PrintWriter;
publicclassRedirecting {
publicstaticvoidmain(String[] args)throwsIOException {
redirect();
// readFile();
// write("B05\\star20110526\\Redirecting.txt", read());
}
privatestaticvoidredirect()throwsIOException{
//将输出定位到PrintStrem,将 System.out重新定义ouputStream
PrintStream printStream = System.out;
//定义输入流
BufferedInputStream bufferedInputStream = newBufferedInputStream(
newFileInputStream("B05\\star20110526\\Redirecting.java"));
//定义输出流
PrintStream printStream2 = newPrintStream(
newBufferedOutputStream(newFileOutputStream("B05\\star20110526\\Redirect.out")));
//本来System.in是接受控制台参数的,现在将System.in重新定义到bufferedInputStream
System.setIn(bufferedInputStream);
System.setErr(printStream2);
System.setOut(printStream2);
//InputStreamReader 为适配器,转换inputStream到Reader,你懂的
BufferedReader bufferedReader = newBufferedReader(newInputStreamReader(System.in));
String string;
while((string = bufferedReader.readLine()) !=null){
System.out.println(string);
}
printStream.close();
printStream2.close();
bufferedReader.close();
System.setOut(printStream);
}
/**
* 读取文件,然后直接在控制台打印出来
* @throws IOException
*/
privatestaticvoidreadFile()throwsIOException{
File file = newFile("B05\\star20110526\\Redirecting.java");
FileReader fileReader = newFileReader(file);
BufferedReader bufferedReader = newBufferedReader(fileReader);
inti =1;
String string;
while((string = bufferedReader.readLine()) !=null){
System.out.println(i++ +":"+string);
}
bufferedReader.close();
}
/**
* 读取文件,返回文件内容,提供文件写入操作
* @return
* @throws IOException
*/
privatestaticString read()throwsIOException{
File file = newFile("B05\\star20110526\\Redirecting.java");
BufferedReader bufferedReader = newBufferedReader(
newFileReader(file));
StringBuilder stringBuilder = newStringBuilder();
String string;
while((string = bufferedReader.readLine()) !=null){
stringBuilder.append(string+"\n");
}
returnstringBuilder.toString();
}
/**
* 新建一个文件,然后往文件里面写文件咯
* @param file
* @param text
* @throws FileNotFoundException
*/
privatestaticvoidwrite(String file,String text)throwsFileNotFoundException{
File file2 = newFile(file);
PrintWriter printWriter = newPrintWriter(file2);
printWriter.write(text);
//必须关闭流,要不然出不来结果的,(╰_╯)#(╰_╯)#(╰_╯)#
printWriter.close();
}
}package star20110526;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.io.PrintWriter;
public class Redirecting {
public static void main(String[] args) throws IOException {
redirect();
//readFile();
//write("B05\\star20110526\\Redirecting.txt", read());
}
private static void redirect() throws IOException{
//将输出定位到PrintStrem,将 System.out重新定义ouputStream
PrintStream printStream = System.out;
//定义输入流
BufferedInputStream bufferedInputStream = new BufferedInputStream(
new FileInputStream("B05\\star20110526\\Redirecting.java"));
//定义输出流
PrintStream printStream2 = new PrintStream(
new BufferedOutputStream(new FileOutputStream("B05\\star20110526\\Redirect.out")));
//本来System.in是接受控制台参数的,现在将System.in重新定义到bufferedInputStream
System.setIn(bufferedInputStream);
System.setErr(printStream2);
System.setOut(printStream2);
//InputStreamReader 为适配器,转换inputStream到Reader,你懂的
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String string;
while((string = bufferedReader.readLine()) != null){
System.out.println(string);
}
printStream.close();
printStream2.close();
bufferedReader.close();
System.setOut(printStream);
}
/**
* 读取文件,然后直接在控制台打印出来
* @throws IOException
*/
private static void readFile() throws IOException{
File file = new File("B05\\star20110526\\Redirecting.java");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
int i = 1;
String string;
while((string = bufferedReader.readLine()) != null){
System.out.println(i++ +":"+string);
}
bufferedReader.close();
}
/**
* 读取文件,返回文件内容,提供文件写入操作
* @return
* @throws IOException
*/
private static String read() throws IOException{
File file = new File("B05\\star20110526\\Redirecting.java");
BufferedReader bufferedReader = new BufferedReader(
new FileReader(file));
StringBuilder stringBuilder = new StringBuilder();
String string;
while((string = bufferedReader.readLine()) != null){
stringBuilder.append(string+"\n");
}
return stringBuilder.toString();
}
/**
* 新建一个文件,然后往文件里面写文件咯
* @param file
* @param text
* @throws FileNotFoundException
*/
private static void write(String file,String text) throws FileNotFoundException{
File file2 = new File(file);
PrintWriter printWriter = new PrintWriter(file2);
printWriter.write(text);
//必须关闭流,要不然出不来结果的,(╰_╯)#(╰_╯)#(╰_╯)#
printWriter.close();
}
}