javaSE用字符IO流拷贝文件

package IO;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

// 用字符流只能拷贝普通文本文件
public class Copy02 {
    public static void main(String[] args) {
        FileReader in = null;
        FileWriter out = null;
        try {
            // 创建输入输出对象
            in = new FileReader("src/IO/Copy02.java");
            out = new FileWriter("Copy02.java");

            // 一边读一边写
            char[] chars = new char[1024 * 512]; // 1MB
            int readCount = 0;
            while ((readCount = in.read(chars)) != -1){
                out.write(chars, 0, readCount);
            }

            // 刷新
            out.flush();

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (out != null) {
                try {
                    out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
文件分片上传和下载是一种常见的解决大文件上传和下载的方法。在JavaSE项目中可以使用HTTP协议实现文件分片上传和下载。具体实现方法如下: 1. 文件分片上传 文件分片上传的基本思路是将大文件分成若干个较小的文件,然后依次上传这些小文件,最后在服务器端将这些小文件合并成一个完整的大文件。实现步骤如下: 1. 将大文件分成若干个小文件。可以使用JavaIO流或者NIO来读取大文件,然后将读取的数据写入到若干个小文件中。 2. 通过HTTP协议上传小文件。可以使用Java的HttpURLConnection类来实现文件上传,具体方法为: ``` URL url = new URL(uploadUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary); connection.setDoOutput(true); byte[] content = readSmallFile(file); // 读取小文件内容 OutputStream out = connection.getOutputStream(); out.write(("--" + boundary + "\r\n").getBytes()); out.write(("Content-Disposition: form-data; name=\"file\"; filename=\"" + file.getName() + "\"\r\n").getBytes()); out.write(("Content-Type: " + contentType + "\r\n\r\n").getBytes()); out.write(content); out.write(("\r\n--" + boundary + "--\r\n").getBytes()); out.flush(); out.close(); ``` 其中,`uploadUrl`为上传接口地址,`boundary`为分隔符,`file`为小文件路径,`contentType`为文件类型,`readSmallFile`为读取小文件内容的方法。 3. 在服务器端将小文件合并成一个大文件。可以使用JavaIO流或者NIO来读取小文件内容,然后将读取的数据写入到一个大文件中。 2. 文件分片下载 文件分片下载的基本思路是将大文件分成若干个较小的文件,然后依次下载这些小文件,最后在客户端将这些小文件合并成一个完整的大文件。实现步骤如下: 1. 在服务器端将大文件分成若干个小文件。可以使用JavaIO流或者NIO来读取大文件,然后将读取的数据写入到若干个小文件中。 2. 通过HTTP协议下载小文件。可以使用Java的HttpURLConnection类来实现文件下载,具体方法为: ``` URL url = new URL(downloadUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setDoInput(true); InputStream in = connection.getInputStream(); byte[] content = new byte[1024]; int len; while ((len = in.read(content)) != -1) { out.write(content, 0, len); } out.flush(); out.close(); in.close(); ``` 其中,`downloadUrl`为下载接口地址,`out`为输出流。 3. 将下载的小文件合并成一个大文件。可以使用JavaIO流或者NIO来读取小文件内容,然后将读取的数据写入到一个大文件中。 以上就是JavaSE项目实现文件分片上传与下载的基本思路和实现方法。需要注意的是,在实际开发中还需要考虑文件的大小、上传和下载进度的显示、上传和下载的并发性等问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱编程的小威

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值