`
Jacen-Su
  • 浏览: 916 次
  • 性别: Icon_minigender_1
  • 来自: 济南
文章分类
社区版块
存档分类
最新评论

ImageIO-图片存取

阅读更多

最近在做图片读写,从服务器上读一张图片,存到手机的SD卡上。一开始是用的FileInputStream和FileOutputStream,但很多时候图片都损坏了,我也不明白是什么原因。有人建议我用ImageReader一系列的东西,我就尝试了一下。但是报出了这么一个错误:java.lang.NoClassDefFoundError:javax.imageio.ImageIO

我看了一下ImageIO在JRE System library中,我用的是jdk1.6.0_10。从网上搜了一下错误,说是包重复,我这也没发现重复现象。所以请各位高手半个帮,我做开发时间不长,还请多多帮助。另外,存取图片,怎样解决图片失真,损坏问题呢?

代码1:获取服务器连接

	public InputStream getInputStream(String serverpath) throws Exception{
		InputStream in=null;
		
		URL url = new URL(serverpath);
		httpurlconnection = (HttpURLConnection) url
				.openConnection();
		httpurlconnection.setRequestMethod("POST");
		httpurlconnection.setRequestProperty("Content-Type",
				"text/html");
		httpurlconnection.setConnectTimeout(1000);
		httpurlconnection.setDoOutput(true);
		httpurlconnection.setDoInput(true);
		httpurlconnection.setUseCaches(false);
		httpurlconnection.connect();
		System.out.println(123);
		in=url.openStream();
		System.out.println(456);
		return in;
	}

 代码2:存取图片

public void savepic(List<String> list,String packagename) throws Exception{
		String filename="";
		String url="";
		for(int i=0;i<list.size();i++){
			/*
			 * ---第一张图片:图标      xxx0.png
			 * ---第二张图片:大图1    xxx1.png
			 * ---第三张图片:大图2    xxx2.png
			 * ---第四张图片:star全   xxx3.png
			 * ---第五张图片:star半   xxx4.png
			 */
			filename=list.get(i);
			System.out.println(filename.split("\\.")[0]);
			url="http://www.gyswad.com:90/push/"+filename;

			InputStream inputStream=getInputStream(url);
			
			FileOutputStream output = null;
//			ByteArrayOutputStream out=null;
			try {
				// 存储到SD卡
				File sdFile = new File(sdcard_path + "/"+packagename+"/"+ filename.split("\\.")[0]+".gif");
				File f1 = new File(sdcard_path);
				File f2=new File(sdcard_path+"/"+packagename);
				if (!f1.exists()) {
					f1.mkdir();// 创建文件夹
				}
				if(!f2.exists()){
					f2.mkdir();
				}
				if (!sdFile.exists()) {
					sdFile.createNewFile();// 创建文件
					// 写入文件
					Iterator<ImageReader> readers=ImageIO.getImageReadersByFormatName("gif");
					ImageReader reader=readers.next();
					
					ImageInputStream iis=ImageIO.createImageInputStream(inputStream);
					reader.setInput(iis,true);
					
					BufferedImage bi=reader.read(0);
					
					Iterator<ImageWriter> writers=ImageIO.getImageWritersByFormatName("gif");
					ImageWriter writer=writers.next();
					
					ImageOutputStream ios=ImageIO.createImageOutputStream(sdFile);
					writer.setOutput(ios);
					
					writer.write(bi);
					//之前是用的这种方式
//					output = new FileOutputStream(sdFile);
//					byte buffer[] = new byte[inputStream.available()];
//					while (inputStream.read(buffer,0,buffer.length) != -1) {
//						output.write(buffer);
//					}
//					iis.close();
//					ios.close();
				}
//				if(output!=null){					
//					output.flush();
//				}
			} catch (Exception e) {
				e.printStackTrace();
				System.out.println("savepic Exception:"+e);
			} finally {
				if(inputStream!=null){
					inputStream.close();
				}
				if(output!=null){				
					output.close();
				}
				if(httpurlconnection!=null){
					httpurlconnection.disconnect();
				}
			}
		}
	}

 
  • 大小: 97.7 KB
分享到:
评论

相关推荐

    jai-imageio-core-1.3.0-API文档-中文版.zip

    赠送jar包:jai-imageio-core-1.3.0.jar; 赠送原API文档:jai-imageio-core-1.3.0-javadoc.jar; 赠送源代码:jai-imageio-core-1.3.0-sources.jar; 赠送Maven依赖信息文件:jai-imageio-core-1.3.0.pom; 包含...

    jai-imageio-core-1.4.0-API文档-中文版.zip

    赠送jar包:jai-imageio-core-1.4.0.jar; 赠送原API文档:jai-imageio-core-1.4.0-javadoc.jar; 赠送源代码:jai-imageio-core-1.4.0-sources.jar; 赠送Maven依赖信息文件:jai-imageio-core-1.4.0.pom; 包含...

    imageio-core-3.1.1-API文档-中英对照版.zip

    赠送jar包:imageio-core-3.1.1.jar; 赠送原API文档:imageio-core-3.1.1-javadoc.jar; 赠送源代码:imageio-core-3.1.1-sources.jar; 赠送Maven依赖信息文件:imageio-core-3.1.1.pom; 包含翻译后的API文档:...

    jai-imageio-core-1.4.0-API文档-中英对照版.zip

    赠送jar包:jai-imageio-core-1.4.0.jar; 赠送原API文档:jai-imageio-core-1.4.0-javadoc.jar; 赠送源代码:jai-imageio-core-1.4.0-sources.jar; 赠送Maven依赖信息文件:jai-imageio-core-1.4.0.pom; 包含...

    imageio-bmp-3.1.1-API文档-中文版.zip

    赠送jar包:imageio-bmp-3.1.1.jar; 赠送原API文档:imageio-bmp-3.1.1-javadoc.jar; 赠送源代码:imageio-bmp-3.1.1-sources.jar; 赠送Maven依赖信息文件:imageio-bmp-3.1.1.pom; 包含翻译后的API文档:...

    imageio-jpeg-3.1.1-API文档-中文版.zip

    赠送jar包:imageio-jpeg-3.1.1.jar; 赠送原API文档:imageio-jpeg-3.1.1-javadoc.jar; 赠送源代码:imageio-jpeg-3.1.1-sources.jar; 赠送Maven依赖信息文件:imageio-jpeg-3.1.1.pom; 包含翻译后的API文档:...

    imageio-psd-3.1.1-API文档-中文版.zip

    赠送jar包:imageio-psd-3.1.1.jar; 赠送原API文档:imageio-psd-3.1.1-javadoc.jar; 赠送源代码:imageio-psd-3.1.1-sources.jar; 赠送Maven依赖信息文件:imageio-psd-3.1.1.pom; 包含翻译后的API文档:...

    webp-imageio-core-0.1.3.jar

    一个可以支持通过Java进行图片转换的jar包,封装好了跨平台动态链接库调用支持。https://link.zhihu.com/?target=https%3A//github.com/nintha/webp-imageio-core

    imageio-tiff-3.1.1-API文档-中文版.zip

    赠送jar包:imageio-tiff-3.1.1.jar; 赠送原API文档:imageio-tiff-3.1.1-javadoc.jar; 赠送源代码:imageio-tiff-3.1.1-sources.jar; 赠送Maven依赖信息文件:imageio-tiff-3.1.1.pom; 包含翻译后的API文档:...

    imageio-core-3.1.1-API文档-中文版.zip

    赠送jar包:imageio-core-3.1.1.jar; 赠送原API文档:imageio-core-3.1.1-javadoc.jar; 赠送源代码:imageio-core-3.1.1-sources.jar; 赠送Maven依赖信息文件:imageio-core-3.1.1.pom; 包含翻译后的API文档:...

    imageio-metadata-3.1.1-API文档-中文版.zip

    赠送jar包:imageio-metadata-3.1.1.jar; 赠送原API文档:imageio-metadata-3.1.1-javadoc.jar; 赠送源代码:imageio-metadata-3.1.1-sources.jar; 赠送Maven依赖信息文件:imageio-metadata-3.1.1.pom; 包含...

    imageio-tiff-3.1.1-API文档-中英对照版.zip

    赠送jar包:imageio-tiff-3.1.1.jar; 赠送原API文档:imageio-tiff-3.1.1-javadoc.jar; 赠送源代码:imageio-tiff-3.1.1-sources.jar; 赠送Maven依赖信息文件:imageio-tiff-3.1.1.pom; 包含翻译后的API文档:...

    imageio-jpeg-3.1.1-API文档-中英对照版.zip

    赠送jar包:imageio-jpeg-3.1.1.jar; 赠送原API文档:imageio-jpeg-3.1.1-javadoc.jar; 赠送源代码:imageio-jpeg-3.1.1-sources.jar; 赠送Maven依赖信息文件:imageio-jpeg-3.1.1.pom; 包含翻译后的API文档:...

    imageio-psd-3.1.1-API文档-中英对照版.zip

    赠送jar包:imageio-psd-3.1.1.jar; 赠送原API文档:imageio-psd-3.1.1-javadoc.jar; 赠送源代码:imageio-psd-3.1.1-sources.jar; 赠送Maven依赖信息文件:imageio-psd-3.1.1.pom; 包含翻译后的API文档:...

    webp-imageio-10.和1.6(不要积分)

    webp-imageio-10.和1.6(不要积分)

    dcm4che-imageio-opencv-5.22.5.jar

    dcm4che-imageio-opencv-5.22.5

    jai-imageio-core-1.3.0.1.jar

    jai-imageio-core-1.3.0.1.jar jai-imageio-core-1.3.0.1.jar

    jai_imageio-1.1-alpha与Swingx-1.6.1的jar包

    tesseract ocr需要用到的jai_imageio-1.1-alpha与Swingx-1.6.1 jar

    jai_imageio-1.1-alpha.jar、swingx-0.9.5-2.jar

    java图像文字识别所需的两jar包:jai_imageio-1.1-alpha.jar、swingx-0.9.5-2.jar

    webp_imageio-0.4.2.zip

    webp图片处理动态库和jar包,支持win32,win64,linxu等环境,一套使用。https://blog.csdn.net/luoqinglong850102/article/details/107313013

Global site tag (gtag.js) - Google Analytics