黑马程序员技术交流社区
标题:
关于Java的IO流中的缓冲区问题
[打印本页]
作者:
刘正祥
时间:
2013-5-17 13:50
标题:
关于Java的IO流中的缓冲区问题
前几天做的基础测试题,有一题是 写一个拷贝文件的程序,尽量使用效率高的方式。
使用的是字符流,因为字符流比字节流效率高。其中有一个读文件缓冲区BufferedReader,一个写文件缓冲区BufferedWriter,这样建立了两个缓冲区,有没有那样的可能,在复制文件中,只建立一个缓冲区,在读文件的时候将文件内容放在缓冲区中,然后再将这个缓冲区的内容写入到另外一个文件,求解?
作者:
joker_chan
时间:
2013-5-17 14:04
一个是写文件。一个是读取文件。当然会用到Reader和Writer了
作者:
李志敏
时间:
2013-5-17 14:27
自定义缓冲区?
public class FileCopyDemo {
public static void main(String[] args) throws IOException {
FileWriter fw = new FileWriter("C:\\testjava\\bb.java");
FileReader fr = new FileReader("C:\\testjava\\myjava.txt");
char[] buf = new char[1024];
int num = 0;
while ((num = fr.read(buf)) != -1) {
fw.write(buf, 0, num);
}
fw.close();
fr.close();
}
}
复制代码
作者:
刘学明
时间:
2013-5-17 15:08
程序代码你参考下 应该比较符合题目
public class CopyText {
public static void main(String[] args) {
BufferedReader bufr = null;
BufferedWriter bufw = null;
try {
bufr = new BufferedReader(new FileReader("a.txt"));
bufw = new BufferedWriter(new FileWriter("b.txt"));
String line = null;
while((line = bufr.readLine())!= null)
{
bufw.write(line);
bufw.newLine();
bufw.flush();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch(IOException e){
e.printStackTrace();
} finally{
if(bufr!= null)
try {
bufr.close();
} catch (IOException e) {
e.printStackTrace();
}
if(bufw!= null)
try {
bufw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
复制代码
作者:
刘正祥
时间:
2013-5-17 16:03
本帖最后由 刘正祥 于 2013-5-17 16:05 编辑
李志敏 发表于 2013-5-17 14:27
自定义缓冲区?
这个貌似是那么一回事,要使用同一个缓冲区,可以自定义一个,不错!
作者:
曹睿翔
时间:
2013-5-19 07:54
如果问题已解决请再次编辑,改为以解决,方便大家看帖,没有就继续追问
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2