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

本文介绍Java中如何使用IO流进行文件读写及重定向操作。通过实例展示了如何利用BufferedReader、PrintStream等类实现从文件读取内容并在控制台输出,以及将系统输出重定向到文件。

java IO 文件读入,写入,重定向 - 天堂有路慢慢走,俯首甘为博之牛 - ITeye技术网站

Java代码   收藏代码
  1. package star20110526;  
  2.   
  3. import java.io.BufferedInputStream;  
  4. import java.io.BufferedOutputStream;  
  5. import java.io.BufferedReader;  
  6. import java.io.File;  
  7. import java.io.FileInputStream;  
  8. import java.io.FileNotFoundException;  
  9. import java.io.FileOutputStream;  
  10. import java.io.FileReader;  
  11. import java.io.IOException;  
  12. import java.io.InputStreamReader;  
  13. import java.io.PrintStream;  
  14. import java.io.PrintWriter;  
  15.   
  16.   
  17. public class Redirecting {  
  18.     public static void main(String[] args) throws IOException {  
  19.         redirect();  
  20. //      readFile();  
  21. //      write("B05\\star20110526\\Redirecting.txt", read());  
  22.     }  
  23.     private static void redirect() throws IOException{  
  24.         //将输出定位到PrintStrem,将 System.out重新定义ouputStream  
  25.         PrintStream printStream = System.out;  
  26.           
  27.         //定义输入流  
  28.         BufferedInputStream bufferedInputStream = new BufferedInputStream(  
  29.                 new FileInputStream("B05\\star20110526\\Redirecting.java"));  
  30.         //定义输出流  
  31.         PrintStream printStream2 = new PrintStream(  
  32.                 new BufferedOutputStream(new FileOutputStream("B05\\star20110526\\Redirect.out")));  
  33.           
  34.         //本来System.in是接受控制台参数的,现在将System.in重新定义到bufferedInputStream  
  35.         System.setIn(bufferedInputStream);  
  36.         System.setErr(printStream2);  
  37.         System.setOut(printStream2);  
  38.           
  39.         //InputStreamReader 为适配器,转换inputStream到Reader,你懂的  
  40.         BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));  
  41.           
  42.         String string;  
  43.         while((string = bufferedReader.readLine()) != null){  
  44.             System.out.println(string);  
  45.         }  
  46.         printStream.close();  
  47.         printStream2.close();  
  48.         bufferedReader.close();  
  49.         System.setOut(printStream);  
  50.     }  
  51.       
  52.     /** 
  53.      * 读取文件,然后直接在控制台打印出来 
  54.      * @throws IOException 
  55.      */  
  56.     private static void readFile() throws IOException{  
  57.         File file = new File("B05\\star20110526\\Redirecting.java");  
  58.         FileReader fileReader = new FileReader(file);  
  59.         BufferedReader bufferedReader = new BufferedReader(fileReader);  
  60.         int i = 1;  
  61.         String string;  
  62.         while((string = bufferedReader.readLine()) != null){  
  63.             System.out.println(i++ +":"+string);  
  64.         }  
  65.         bufferedReader.close();  
  66.     }  
  67.     /** 
  68.      * 读取文件,返回文件内容,提供文件写入操作 
  69.      * @return 
  70.      * @throws IOException 
  71.      */  
  72.     private static String read() throws IOException{  
  73.         File file = new File("B05\\star20110526\\Redirecting.java");  
  74.         BufferedReader bufferedReader = new BufferedReader(  
  75.                 new FileReader(file));  
  76.         StringBuilder stringBuilder = new StringBuilder();  
  77.         String string;  
  78.         while((string  = bufferedReader.readLine()) != null){  
  79.             stringBuilder.append(string+"\n");  
  80.         }  
  81.         return stringBuilder.toString();  
  82.     }  
  83.       
  84.     /** 
  85.      * 新建一个文件,然后往文件里面写文件咯 
  86.      * @param file 
  87.      * @param text 
  88.      * @throws FileNotFoundException 
  89.      */  
  90.     private static void write(String file,String text) throws FileNotFoundException{  
  91.         File file2 = new File(file);  
  92.         PrintWriter printWriter = new PrintWriter(file2);  
  93.         printWriter.write(text);  
  94.         //必须关闭流,要不然出不来结果的,(╰_╯)#(╰_╯)#(╰_╯)#  
  95.         printWriter.close();  
  96.     }  
  97. }  
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();
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值