java.lang.IndexOutOfBoundsException at java.io.FileOutputStream.writeBytes(Native Method)
2015-08-27 09:49
826 查看
测试 DDN wos 的时候出现错误:
相关代码是:
为什么总是不行呢???
这样的简单流操作、、
available : 3212 /usr/lk/data/linkapp/ddn_1440639847758_temp 1024 1024 java.lang.IndexOutOfBoundsException at java.io.FileOutputStream.writeBytes(Native Method) at java.io.FileOutputStream.write(FileOutputStream.java:260) at com.lk.ddn.DDNRestUtil.getData(DDNRestUtil.java:439) at com.lk.ddn.DDNRestUtil.main(DDNRestUtil.java:88)
相关代码是:
public static byte[] getData(String oid) { if (StringUtils.isEmpty(oid)) { return null; } int nFileLength = -1; String meta = ""; byte[] fileData = null; try { String httpurl = "http://"+host+"/cmd/get"; httpurl = "http://localhost/disk/myFileList.action"; httpurl = "http://localhost/register.jsp"; URL url = new URL(httpurl); HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection(); httpConnection.setRequestMethod("GET"); // httpConnection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 " + // "(KHTML, like Gecko) Chrome/38.0.2125.101 Safari/537.36"); httpConnection.setRequestProperty("content-type", "application/octet-stream"); httpConnection.setDoOutput(true); httpConnection.setDoInput(true); int responseCode = httpConnection.getResponseCode(); if (responseCode >= 400) { processErrorCode(responseCode); return null; // -2 represent access is error } if (responseCode == HttpURLConnection.HTTP_OK) { if (1==1) { InputStream inputStream = null; try { // inputStream = httpConnection.getInputStream(); // int available = inputStream.available(); // System.out.println(" available : " + available); // fileData = new byte[available]; // int read = inputStream.read(fileData); // System.out.println(" read : " + read); // int read = 0; // while ((read = inputStream.read(fileData)) != -1) { // // } // String contentEncoding = httpConnection.getContentEncoding(); // System.out.println(" contentEncoding : " + contentEncoding); // // inputStream = httpConnection.getInputStream(); // int available = inputStream.available(); // fileData = new byte[nFileLength]; // int read = inputStream.read(fileData); // System.out.println(" read : " + read); // while ((read = inputStream.read(fileData)) != -1) { // // } inputStream = httpConnection.getInputStream(); int available = inputStream.available(); System.out.println(" available : " + available); int offset = 0; int reads; int onesize = available>1024?1024:available; // fileData = new byte[nFileLength]; // fis.reset(); // while ((reads = inputStream.read(fileData,offset,onesize)) != -1) { // //System.out.println(new String(b)); // offset += reads; // if (onesize >= available - offset) { // onesize = available - offset; // if (onesize <= 0) { // break; // } // } // } // while ((reads = inputStream.read(fileData)) != -1) { // //System.out.println(new String(b)); // offset += reads; // } String downlowdPath = getTempFileDownlowdPath(); System.out.println(downlowdPath); FileOutputStream fos = new FileOutputStream(downlowdPath); int read = 0; int off = 0; available = inputStream.available(); byte[] b = new byte[1024]; while ((read = inputStream.read(b))!= -1) { System.out.println(read); fos.write(b,off,read); off += read; } if (b != null) { // fos.write(b); } System.out.println("readed : " + read); inputStream.close(); fos.flush(); fos.close(); // } catch (IOException e) { e.printStackTrace(); } finally { if (inputStream != null) { inputStream.close(); } } } } } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return fileData; }
为什么总是不行呢???
这样的简单流操作、、
相关文章推荐
- 2015.6.15(nut-console结合SpringMVC)
- Spring整合Hibernate:2、使用Annotation方式进行声明式的事务管理
- eclipse经常未响应解决办法
- Spring整合Hibernate:1、annotation方式管理SessionFactory
- 2015.6.11(java并发续)
- Spring简单与数据库连接
- 2015.6.10(java并发)
- java-通过类实现验证码(一)
- Eclipse个性化设置
- 学习日志---矩阵表示及特殊矩阵压缩
- spring 定时任务的 执行时间设置规则
- XML方式实现Spring的AOP
- C#与java交互导入EXCEL
- Eclipse Android SDK content Loader
- Spring的AOP介绍
- TimerTask的小例子
- SpringAnnotation之配置AnnotationXML文件
- SpringMVC总结
- Java String对象的经典问题(new String())
- Struts2学习笔记(七):OGNL之<s:property>标签访问值栈(value Stack)对象属性