java 读写文件

@Test
public void read() throws Exception {

    String source = "C:\\Users\\Administrator\\Desktop\\167.png";
    String destination = "C:\\Users\\Administrator\\Desktop\\ssss.jpg";

    int bufferSize = 4096; // 设置缓冲区大小
    byte buffer[] = new byte[bufferSize]; // 缓冲区字节数组

    File sourceFile = new File(source);

    InputStream fis = new FileInputStream(sourceFile);

    BufferedInputStream bis = new BufferedInputStream(fis, bufferSize);

    OutputStream fos = new FileOutputStream(destination);
    BufferedOutputStream bos = new BufferedOutputStream(fos, bufferSize);

    long fileSize = sourceFile.length(); // 文件总字节数
    int haveRead = 0; // 已读取字节数
    int readSize = -1; // 记录每次实际读取字节数
    while (null != bis && (readSize = bis.read(buffer)) != -1) {
        haveRead += readSize;
        System.out.println(new String(buffer));

        bos.write(buffer, 0, readSize);
        System.out.println("已经复制:  " + haveRead + " Byte       完成" + haveRead * 100 / fileSize + "%     单次读取:" + readSize + " Byte");
    }
    bos.flush();
    bos.close();
    bis.close();
    System.out.println("复制完成:  " + haveRead);
}
相关文章
相关标签/搜索