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

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. }  
原文地址:https://www.cnblogs.com/lexus/p/2370396.html