Java - BufferedWriter写文件, 拷贝文件

将文本写入字符输出流,缓冲字符,以便高效地写入单个字符、数组和字符串。
可以指定缓冲区大小,也可以接受默认大小。 对于大多数用途,默认值足够大。

提供了一个 newLine() 方法,它使用由系统属性 line.separator 定义的平台自己的行分隔符概念。 并非所有平台都使用换行符 ('\n') 来终止行。 因此,调用此方法终止每个输出行优于直接写入换行符。

通常,Writer 会立即将其输出发送到底层字符或字节流。 除非需要提示输出,否则建议将 BufferedWriter 包裹在任何其 write() 操作可能代价高昂的 Writer 周围,例如 FileWriters 和 OutputStreamWriters。 例如,

 PrintWriter out
   = new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));

会将 PrintWriter 的输出缓冲到文件中。 如果没有缓冲,每次调用 print() 方法都会导致字符被转换为字节,然后立即写入文件,这可能非常低效。

 @Test
    public void bufferedWriterWriteFile(){
        String filePath = "C:\\Users\\JinZh\\IdeaProjects\\TestJa\\software\\copy_directory\\file02.txt";
        BufferedWriter bufferedWriter = null;
        try {
            //拼接方式读取
            bufferedWriter = new BufferedWriter(new FileWriter(filePath, true));
            bufferedWriter.write("hello world1");
            bufferedWriter.write("hello world2");
            bufferedWriter.write("hello world3");
        }catch (IOException e){
            e.printStackTrace();
        }finally {
            try{
                if(bufferedWriter!=null){
                    bufferedWriter.close();
                }
            }catch (IOException e){
                e.printStackTrace();
            }
        }

    }

拷贝文件

我们可以使用BufferedReader和BufferedWriter拷贝非二进制文件,如下。

   @Test
    public void bufferedCopy(){
        String fromPath="C:\\Users\\JinZh\\IdeaProjects\\TestJa\\software\\file02.txt";
        String toPath = "C:\\Users\\JinZh\\IdeaProjects\\TestJa\\software\\copy_directory\\file02.txt";
        BufferedReader bufferedReader = null;
        BufferedWriter bufferedWriter = null;
        String line = null;
        try {
            bufferedWriter = new BufferedWriter(new FileWriter(toPath, true));
            bufferedReader = new BufferedReader(new FileReader(fromPath));
            while ((line = bufferedReader.readLine())!=null){
                bufferedWriter.write(line);
                bufferedWriter.newLine();
            }

        }catch (IOException e){
            e.printStackTrace();
        }finally {
            try {
                if(bufferedWriter!=null){
                    bufferedWriter.close();
                }
                if(bufferedReader!=null){
                    bufferedReader.close();
                }
            }catch (IOException e){
                e.printStackTrace();
            }
        }



    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 提供了多种文件操作的方式,下面介绍常用的几种: 1. 文件读取 使用 Java 的 I/O 流可以从文件中读取数据。可以使用 BufferedReader 或 Scanner 类来读取文本文件,使用 FileInputStream 类来读取二进制文件。示例代码如下: ```java // 读取文本文件 File file = new File("file.txt"); BufferedReader reader = new BufferedReader(new FileReader(file)); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } reader.close(); // 读取二进制文件 File file = new File("file.bin"); InputStream inputStream = new FileInputStream(file); byte[] buffer = new byte[1024]; int length; while ((length = inputStream.read(buffer)) != -1) { // 处理读取的数据 } inputStream.close(); ``` 2. 文件入 使用 Java 的 I/O 流可以将数据写入文件中。可以使用 BufferedWriter 或 PrintWriter 类来入文本文件,使用 FileOutputStream 类来入二进制文件。示例代码如下: ```java // 入文本文件 File file = new File("file.txt"); BufferedWriter writer = new BufferedWriter(new FileWriter(file)); writer.write("Hello, world!"); writer.newLine(); writer.write("This is a test file."); writer.close(); // 入二进制文件 File file = new File("file.bin"); OutputStream outputStream = new FileOutputStream(file); byte[] buffer = new byte[]{1, 2, 3, 4, 5}; outputStream.write(buffer); outputStream.close(); ``` 3. 文件拷贝 可以使用 Java 的 I/O 流将一个文件的内容复制到另一个文件。示例代码如下: ```java File sourceFile = new File("source.txt"); File destFile = new File("dest.txt"); InputStream inputStream = new FileInputStream(sourceFile); OutputStream outputStream = new FileOutputStream(destFile); byte[] buffer = new byte[1024]; int length; while ((length = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, length); } inputStream.close(); outputStream.close(); ``` 4. 文件夹操作 Java 提供了 File 类来操作文件文件夹。可以使用 mkdir() 方法创建文件夹,使用 list() 或 listFiles() 方法列出文件夹中的文件文件夹,使用 delete() 方法删除文件文件夹。示例代码如下: ```java // 创建文件夹 File directory = new File("dir"); directory.mkdir(); // 列出文件夹中的文件文件夹 File directory = new File("dir"); String[] files = directory.list(); for (String file : files) { System.out.println(file); } // 删除文件文件夹 File file = new File("file.txt"); file.delete(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值