美文网首页
java io包详解

java io包详解

作者: 炽热冰峰 | 来源:发表于2019-03-19 22:51 被阅读0次
image.png image.png

文件传输的样例(使用DataOutputStream ):
https://blog.csdn.net/u010154380/article/details/78710840

注意事项:
在读取网络套接字的时候,由于网络状况的原因,每次read的字节数很可能不是write的字节数,需要多次read。(解决AES解密失败)
示例代码:

// 客户端发送文件,服务器接收文件
dis = new DataInputStream(socket.getInputStream());

String toName = dis.readUTF();
String fileName = dis.readUTF();
File dir = new File(baseStorePath + File.separatorChar + toName);
if (!dir.exists()) {
    dir.mkdirs();
}
File file = new File(dir.getAbsolutePath() + File.separatorChar + fileName);
fos = new FileOutputStream(file);
while(true) {
   
    long len = 0;
    try {
        len = dis.readLong();// 文件总长度,从对端发送过来
    } catch (Exception e) {
//                                e.printStackTrace();

        break;
    }
    if (len > 0) {

        byte[] data = new byte[(int) len];
        int readNum = 0;
        // 由于网络原因,一次read很可能没有读取所有内容,
        // 如果不加这个while循环容易导致解密失败。
        while(readNum < len) {
            readNum += dis.read(data, readNum, (int)(len-readNum));
        }
       
        String dataString = new String(data, "utf-8");
        String deString   = AESUtils.decrypt(dataString, client.getShareKey());
        byte[] deData     = Base64Utils.decode(deString);
        
        fos.write(deData, 0, deData.length);
        fos.flush();
    }else {
        break;
    }
}

具体参考:
https://blog.csdn.net/nightcurtis/article/details/51324105
https://blog.csdn.net/lmb55/article/details/79511007
Java 的字节流文件读取(一)
https://www.cnblogs.com/yangming1996/p/9046178.html

相关文章

  • java io包详解

    文件传输的样例(使用DataOutputStream ):https://blog.csdn.net/u01015...

  • Java之IO流详解

    title: Java之IO流详解tags: Java IO流categories: Java IO流 大多数应用...

  • 2018-04-25

    java.io(Input/Output)使用详解 目录1、流(Stream)2、流的分类3、java.io包下的...

  • Java I/O 1.1

    Java IO一般大家常说的IO分为两个部分: 1.java.io包中堵塞型IO(BIO);2.java.nio包...

  • ④Java.IO

    java.IO包是java处理文件目录有关的工具包,对于本节的学习,我们要有以下几个目标 了解java.io包 运...

  • Java常用包的主要作用

    java.io io流相关操作java.nio 新io操作java.lang 核心功能包,线程,System,基本...

  • Java-输入输出I/O--FileInputStream &F

    一、FileInputStream类 1. 包 java.io 2. 继承 java.io.InputStream...

  • Java IO流详解(一)——预备知识

    Java IO流详解(一)——预备知识 一、字符与字节 在Java中有输入、输出两种IO流,每种输入、输出流又分为...

  • Java IO详解

    1. Java中字节流和字符流 字节(Byte)和字符(Character)的大小: 1 byte = 8bit[...

  • Java IO详解

    IO 是什么?其实就是Java中的一种输入和输出功能,也可以理解为对文件的写入和读出的操作,只不过Java中对这种...

网友评论

      本文标题:java io包详解

      本文链接:https://www.haomeiwen.com/subject/gxwomqtx.html