java IO 文件读入,写入,重定向

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();
	}
}

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值