我是靠谱客的博主 悲凉小熊猫,最近开发中收集的这篇文章主要介绍stream lib java_socket编程时用ObjectInputstream出现了libcore.io.streams.readfully,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

具体是写一个Android和PC文件共享的小项目

Android端(以下为a).PC端(以下为p),a和p连接上后,a将p上的根目录显示,点击进入文件夹,我做的处理是,如果点击(发送被点击文件的路径)的是文件夹,那么就打开文件夹,如果点击的是文件就直接下载,而文件夹能直接打开,但是点击文件就直接抛io异常

p(服务器)的部分代码:

try

{

ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());

DataInputStream dis = new DataInputStream(socket.getInputStream());

String filePath = dis.readUTF(); //接收android端点击的文件的路径

File selectFile = new File(filePath);

if (selectFile.isDirectory()) // 文件夹, 就把文件夹内的所有子文件信息发送回去

{

oos.writeInt(1); // 发送是文件夹的标识

// 略...

}

else// 文件就直接发送该文件

{

oos.writeInt(0); // 发送非文件夹的标识

oos.writeUTF(selectFile.getName());

System.out.println("正在下载" + selectFile.getName());

FileInputStream fis = new FileInputStream(selectFile);

DataOutputStream dos = new DataOutputStream(socket.getOutputStream());

int len = 0;

byte []buff = new byte[1024 * 1024];

while ((len = fis.read(buff)) != -1)

{

dos.write(buff, 0, len);

}

fis.close();

}

socket.close();

}

catch (IOException e)

{

e.printStackTrace();

}

a(客户端)部分代码

DataOutputStream dos = new DataOutputStream(socket.getOutputStream());

ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());

dos.writeUTF(path); // 发送被点击文件的路径

int isDir = ois.readInt(); // 接收是不是文件夹的标识 (这里如果点击文件夹就没问题, 但是如果是点击文件, 就在这里报错)

if (isDir == 1)

{

// 略

}

else

{

String fileName = ois.readUTF();

String filePath = ConnectActivity.myPath + "/download/" + fileName;

Log.i("path2", filePath);

FileOutputStream fos = new FileOutputStream(new File(filePath));

DataInputStream dis = new DataInputStream(socket.getInputStream());

int len = 0;

byte[] buff = new byte[1024 * 1024];

while ((len = dis.read(buff)) != -1)

{

fos.write(buff, 0, len);

}

Log.i("path2", filePath);

fos.close();

}

求解???

最后

以上就是悲凉小熊猫为你收集整理的stream lib java_socket编程时用ObjectInputstream出现了libcore.io.streams.readfully的全部内容,希望文章能够帮你解决stream lib java_socket编程时用ObjectInputstream出现了libcore.io.streams.readfully所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部