- 浏览: 17646 次
最新评论
图片传输问题,IO操作
2011年08月01日
原题:
将本地图片文件,转成字节码流后,然后再 转成对象 用于 网络传输
几个得分的回复:
(1) javax.imageio.*; 里面的方法也许有用: BufferedImage bImage = new BufferedImage(image.getWidth(), image .getHeight(), BufferedImage.TYPE_INT_ARGB); ByteArrayOutputStream out = new ByteArrayOutputStream(); try { ImageIO.write(bImage, format, out); } catch (IOException e) { e.printStackTrace(); } byte [] b = out.toByteArray(); b传过去,再转成图像,用FileOutpurStream 就好啦 FileOutputStream fos = new FileOutputStream(file); for (int i = 0; i 0){ bao.write(buff); } bao.close(); bis.close(); buff=bao.toByteArray();//将图片文件转换为字节数组//buff数组存储的是图片1.JPG的字节码 ByteArrayInputStream asis=new ByteArrayInputStream(buff); BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("d:/2.jpg")); byte[] temp=newbyte[1]; while((asis.read(temp))>0){ bos.write(temp); } asis.close(); bos.flush(); bos.close(); }catch(Exception e){ e.printStackTrace(); } } }
(5) 楼主给出的代码: 问题应该是解决了,我的文件比较小,我准备用字节数组传输 写了代码,大家看看; 最后利用现有的传对象的方法 将字节数组传输到服务端 存为文件 public class TestFile { /** *@param args *@throws IOException*/ public static void main(String[] args)throws IOException{ // int byteread = 0; // File file = new File("2.GIF"); // InputStream is = new FileInputStream(file); // byte[] buffer = new byte[1024]; // while ((byteread = is.read(buffer)) != -1) {//一次读1444个字节放入buffer数组中 // System.out.println(is.read(buffer)); // } File file=new File("2.GIF");byte[] b= getBytesFromFile(file); getFileFromBytes(b,"22.jpg"); } public static byte[] getBytesFromFile(File file){ byte[] ret=null; try{ if (file==null){ // log.error("helper:the file is null!"); return null; } FileInputStream in=new FileInputStream(file); ByteArrayOutputStream out=new ByteArrayOutputStream(4096); byte[] b=newbyte[4096]; int n; while ((n= in.read(b))!=-1){ out.write(b,0, n); } in.close(); out.close(); ret= out.toByteArray(); }catch (IOException e){ // log.error("helper:get bytes from file process error!"); e.printStackTrace(); } return ret; } public static File getFileFromBytes(byte[] b, String outputFile){ File ret=null; BufferedOutputStream stream=null; try{ ret=new File(outputFile); FileOutputStream fstream=new FileOutputStream(ret); stream=new BufferedOutputStream(fstream); stream.write(b); }catch (Exception e){ // log.error("helper:get file from byte process error!"); e.printStackTrace(); }finally{ if (stream!=null){ try{ stream.close(); }catch (IOException e){ // log.error("helper:get file from byte process error!"); e.printStackTrace(); } } } return ret; } }
发表评论
-
MTD NAND Analysis 1
2012-01-20 08:14 722MTD NAND Analysis 1 2011年05月06 ... -
内存映射对于大文件的使用
2012-01-20 08:14 666内存映射对于大文件的使用 2011年04月28日 平时很 ... -
rtems 下linkcmd分析代码
2012-01-20 08:14 988rtems 下linkcmd分析代码 2010年11月09日 ... -
连傻瓜都能看懂的基于代码注入的线程守护技术
2012-01-20 08:14 1660连傻瓜都能看懂的基于 ... -
mmap内存映射操作之一
2012-01-20 08:14 1082mmap内存映射操作之一 2011年06月09日 本博客 ... -
S7-300 PLC的串口无线通讯在火电厂污水处理中的应用
2012-01-19 13:31 686S7-300 PLC的串口无线通讯 ... -
IIS32位和64位切换
2012-01-19 13:31 869IIS32位和64位切换 2011年12月22日 X64 ... -
两平台下的自动登录telnet设置
2012-01-19 13:30 645两平台下的自动登录telnet设置 2011年12月28日 ... -
延时批处理
2012-01-19 13:30 797延时批处理 2012年01月12日 举个例子,我们要延时 ... -
ActionScript垃圾回收
2012-01-17 03:20 965ActionScript垃圾回收 2011年10月26日 ... -
计算机故障大全(二)
2012-01-17 03:20 642计算机故障大全(二) 2010年06月02日 硬盘 ... -
琢石成器――windows环境下32位汇编语言程序设计(第三版)笔记
2012-01-17 03:20 2086琢石成器――windows环境下32位汇编语言程序设计(第三版 ... -
WinCE驱动开发问题精华集锦
2012-01-17 03:20 600WinCE驱动开发问题精华 ... -
钢蹦爸爸的自白
2012-01-16 01:54 669钢蹦爸爸的自白 2009年10月24日 怀着复杂的心情 ... -
爱韩庚的100个理由
2012-01-16 01:54 634爱韩庚的100个理由 2009 ... -
火车上的随想
2012-01-16 01:54 553火车上的随想 2011年02 ... -
jbpm3通过processDefinition.createProcessInstance()为什么能保存ProcessInstance之迷
2012-01-11 01:53 710jbpm3通过processDefinition.create ... -
Android自定义VIEW取得XML的自定义值
2012-01-11 01:53 674Android自定义VIEW取得XML的自定义值 2011年 ... -
常用的正则表达式--Java
2012-01-11 01:53 715常用的正则表达式--Java 2011年08月01日 是 ... -
jsp编码过滤器的配置和使用-用心做程序-iteye技术网站
2012-01-11 01:52 693jsp编码过滤器的配置和使用-用心做程序-iteye技术网站 ...
相关推荐
以下是对标题和描述中涉及的Java IO操作知识点的详细说明: 1. **读取文件内容**: - **按字节读取**:使用`FileInputStream`类,通过`read()`方法逐个读取字节。适用于二进制文件,如图片、音频或视频。 - **按...
Java IO操作是Java编程中的重要组成部分,主要用于处理输入和输出数据。在Java中,IO操作涉及到文件、字节流、字符流以及管道流等多个概念。下面将详细解释这些知识点。 首先,我们来看“文件类”。在Java中,`java...
在图片传输中,可能会使用`Socket.Send`和`Socket.Receive`方法来读写数据流。 4. **图像处理**:在接收端,接收到的是二进制数据,需要将其转换回图像文件。C#的`System.Drawing`命名空间提供了对图像处理的支持,...
在Java编程中,IO流是处理数据传输的核心工具,广泛应用于文件读写、网络通信等场景。在图片下载的情景下,我们通常会使用HTTP协议来从服务器获取图片数据,并通过IO流将其保存到本地。 描述中提到的“NULL”意味着...
IO操作是程序与外部世界交互的基础,无论是读取文件、网络数据还是设备状态。在Android开发中,`FileInputStream`和`FileOutputStream`通常用于文件操作,`JsonReader`和`JsonWriter`用于处理JSON数据。理解并熟练...
Java NIO(New IO)提供了非阻塞的IO操作,通过选择器(Selector)可以同时监听多个通道,提高了IO性能。Java 7引入了NIO.2,引入了Path、Files、Paths等新类,使得文件操作更加简洁。 总结,Java中的IO文件流操作...
- 对于大规模的、高性能的图片传输,可能需要更复杂的缓存策略、多线程处理和错误恢复机制。 通过学习和实践"Java Socket传输图片源代码",开发者可以掌握网络编程的基本原理和技巧,为构建更复杂的分布式系统打下...
通过熟练掌握这些概念,开发者可以有效地实现各种IO操作,优化程序性能,并确保数据安全传输。 在提供的文件名"IOTest"中,我们可以假设这是一个包含IO操作相关测试代码的文件,用于验证上述概念的实际应用。通过...
NIO提供了非阻塞的IO操作,通过Channel和Buffer对象实现。通道(Channel)类似于流,但它们是双向的,可以同时用于读写。缓冲区(Buffer)是用来存储数据的地方,读写操作都是通过通道与缓冲区进行交互。选择器...
创建一个简单的图片传输系统,我们需要遵循以下步骤: 1. **服务器端**:首先,我们需要创建一个服务器端应用,它会监听特定的端口(默认或自定义),等待客户端的连接请求。使用`ServerSocket`类创建一个服务器套...
在Java中,I/O操作主要涉及到java.io包中的类和接口。这些类和接口的设计遵循了面向对象的原则,以接口和抽象类作为核心,具体的操作由其子类实现。 Java I/O的核心类包括: 1. File类:File类是用于操作文件和目录...
图片传输可以视为文件传输的一种特殊形式,因为图片本质上也是二进制文件。可以使用`ImageIO` 类读取图片为字节数组,然后通过网络发送。在接收端,同样需要将接收到的字节数组还原为图片。 心跳检测是网络通信中...
字节流是 Java 中最基本的 IO 操作方式,它可以读取和写入所有类型的文件,包括图片、音频、视频等。字节流是以 byte 为单位的,它可以处理所有类型的数据。字节流的操作是直接对文件进行操作的,不使用缓冲区,效率...
### Java IO操作详解 在Java编程语言中,IO(Input/Output)操作是处理文件读写、网络数据传输等场景的基础。本文将详细介绍Java中进行文件基础操作的方法,包括读取、追加、删除、移动、复制以及修改文件的具体...
除此之外,Java NIO(New IO)是Java 1.4引入的新特性,它提供了非阻塞IO操作,可以同时处理多个输入和输出通道,提高了IO性能。NIO的核心类包括 `Channel`、`Buffer` 和 `Selector`。`Channel` 代表数据传输的通道...
Java IO流操作是Java编程语言中的重要组成部分,它允许程序进行输入输出操作,处理数据从一个地方流向另一个地方。在Java中,IO流分为两大类:字节流(Byte Stream)和字符流(Character Stream)。字节流处理单个...
在Java 7及更高版本中,引入了NIO(New IO)和NIO.2,提供了更高效、更灵活的IO操作方式,如通道(Channel)、缓冲区(Buffer)和选择器(Selector)。尽管这些不是传统意义上的“流”,但在处理IO操作时同样重要。 ...
8. **异常处理**:在涉及IO操作的代码中,通常需要处理可能出现的IOException。例子中的`catch (Exception e)`捕获异常并打印堆栈跟踪,但在实际应用中,应根据需要进行更具体的异常处理。 总的来说,Java IO流提供...
【Java IO操作详解】 在Java编程中,IO(Input/Output)操作是处理数据输入与输出的核心技术。Java-IO操作共19页的笔记详细介绍了这一关键领域,旨在帮助开发者掌握如何有效地读取、写入和管理数据。Java IO API...
- Java 1.4引入了NIO(非阻塞IO),提供了Channel、Selector和Buffer等新概念,提高了IO操作的效率和并发性。 7. 打包和解压: - ZipInputStream和ZipOutputStream用于读写ZIP文件。 - GZIPOutputStream和...