Java 重定向 无法写入_java IO 文件读入,写入,重定向
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();
}
}
總結
以上是生活随笔為你收集整理的Java 重定向 无法写入_java IO 文件读入,写入,重定向的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 买股票和买基金哪个收益更大?股票和基金哪
- 下一篇: 信用卡未还清能贷款吗 没逾期也能申请贷款