goback add

实例分析:例1:从第一个命令行参数代表的文件中读字符,然后写入第二个参数代表的文件

2912 点击·0 回帖
灯火互联
楼主


问题分析
本题中需要从文件读,写数据,需要使用到与文件有关的流FileReader/FileWriter。
可以通过运行时参数提供文件的名称。
使用带有Buffer功能的流
为了提高读写数据的效率,可以使用带有buffer功能的流完成文件读写,并且可以以行为单位读写数据。
使用类BufferedReader,BufferedWriter
I/O流的链
在程序中很少使用单独一个流对象,实际做法是将几个流对象串联起来处共同理数据。这样做会提高程序的效率。www.atcpu.com
数据源-> FileInputStream -> BufferedInputStream -> DataInputStream -> 程序
数据源<- DataOutputStream <- BufferedOutputStream <- FileOutputStream <-程序
编写代码
[java]
import java.io.*;
public class TestBufferedStreams {
    public static void main(String[] args) {
        try {
            FileReader input = new FileReader(args[0]);
            BufferedReader bufInput = new BufferedReader(input);
            FileWriter output = new FileWriter(args[1]);
            BufferedWriter bufOutput = new BufferedWriter(output);
            String line = bufInput.readLine();

            while (line != null) {
                bufOutput.write(line, 0, line.length());
                bufOutput.newLine();
                line = bufInput.readLine();
            }

            bufInput.close();
            bufOutput.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
import java.io.*;
public class TestBufferedStreams {
public static void main(String[] args) {
  try {
   FileReader input = new FileReader(args[0]);
   BufferedReader bufInput = new BufferedReader(input);
   FileWriter output = new FileWriter(args[1]);
   BufferedWriter bufOutput = new BufferedWriter(output);
   String line = bufInput.readLine();
   while (line != null) {
    bufOutput.write(line, 0, line.length());
    bufOutput.newLine();
    line = bufInput.readLine();
   }
   bufInput.close();
   bufOutput.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
}
}
编译运行
javac TestBufferedStreams.java
java TestBufferedStreams user.bat userbak.bat


喜欢0 评分0