package com.heima.Exce;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
/*
需求:
把一个文本中的内容打印到控制台上和一个新的文本中。
分析:
把一个文本的内容打印到控制台上。
读文件:FileInputStreat(*);//*可以代表一个已经有具体数据的文件例如:"E:\\a.txt"也可以代表键盘的直接录入信息System.in
把读到的字节转换成字符;InputStreamReader(*);//*可以代表一个已经有具体数据的文件例如:"E:\\a.txt"也可以代表键盘的直接录入信息System.in
高效的读取文件,用到BufferedReader.
BufferedReader bufr = new BufferedReader(new InputStreamReader(new FileInputStream(*)));
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
写文件:FileOutputStream(*);//*可以代表目的地:一个准备写入数据的文件;
把要写字符转换成字节;OutputStreamWriter(*);//代表一个可以准备写入数据的文件;也可以代表直接打印在控制台上System.out
高效的写入文件,用到BufferedWriter.
BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(*)));
BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(Systemo.out));
method_01();//把键盘录入的信息打印在控制台上
method_02();//把键盘录入的信息打印在一个文件中
method_03();//把一个已经写有数据的文件内容打印在控制台上
method_04();////把一个已有写入数据的文件内容,写入到一个新的文本当中(本方法对异常进行处理)----method_04()实现了文件的复制功能
处理以商整理的还以利用:
System.setIn();//更改读取数据源(把控制台上的内容或文本的内容读取出来)
System.serOut();//更改写入数据目的地(把读到的内容写到到一个文本中或控制台)
* */
public class TransStreamExce {
public static void main(String[] args) throws IOException {
// method_01();
// method_02();
// method_03();
method_04();
}
//把键盘录入的信息打印在控制台上
public static void method_01() throws IOException{
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));
String line = null;
while((line= bufr.readLine())!=null){
bufw.write(line);
bufw.newLine();
bufw.flush();
}
bufw.close();
bufr.close();
}
//把键盘录入的信息打印在一个文件中
public static void method_02() throws IOException{
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("E:\\abc.txt")));
String line = null;
while((line=bufr.readLine())!=null){
if(line.equals("over"))//当键盘录入的内容为over时,结束录入信息
break;
bufw.write(line);
bufw.newLine();
bufw.flush();
}
bufw.close();
bufr.close();
}
//把一个已经写有数据的文件内容打印在控制台上
public static void method_03() throws IOException{
BufferedReader bufr = new BufferedReader(new InputStreamReader(new FileInputStream("E:\\abc.txt")));
BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));
String line = null;
while((line=bufr.readLine())!=null){
bufw.write(line);
bufw.newLine();
bufw.flush();
}
bufw.close();
bufr.close();
}
/******************method_04()实现了文件的复制功能*****************************************/
//把一个已有写入数据的文件内容,写入到一个新的文本当中(本方法对异常进行处理)----method_04()实现了文件的复制功能
public static void method_04(){
BufferedReader bufr;
try {
bufr = new BufferedReader(new InputStreamReader(new FileInputStream("E:\\abc.txt")));
} catch (FileNotFoundException e) {
throw new RuntimeException("读取文件失败!");
}
BufferedWriter bufw;
try {
bufw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("E:\\abc01.txt")));
} catch (FileNotFoundException e) {
throw new RuntimeException("写入文件失败!");
}
String line = null;
try {
while((line=bufr.readLine())!=null){
bufw.write(line);
bufw.newLine();
bufw.flush();
}
} catch (IOException e) {
throw new RuntimeException("写入文件失败!");
}
try {
bufw.close();
} catch (IOException e) {
throw new RuntimeException("写入文件关闭失败!");
}
try {
bufr.close();
} catch (IOException e) {
throw new RuntimeException("读取文件关闭失败!");
}
}
}
|
|