我的代码是: InputStream confFile=classLoader.getResourceAsStream("myconffile.properties"); 在文档中: InputStream的close方法什么都不做。 这是否意味着我不需要closuresInputStream?
我目前的情况是:我必须读取一个文件并将其内容放入InputStream 。 之后,我需要将InputStream的内容放入一个字节数组中,该数组需要(据我所知) InputStream的大小。 有任何想法吗? 根据要求,我将显示从上传的文件创build的inputstream InputStream uploadedStream = null; FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); java.util.List items = upload.parseRequest(request); java.util.Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (!item.isFormField()) { uploadedStream = item.getInputStream(); //CHANGE uploadedStreambyte = item.get() } } 请求是一个HttpServletRequest对象,就像FileItemFactory和ServletFileUpload来自Apache Commons FileUpload包。
我的LogCat读取: 08-19 09:29:01.964: WARN/System.err(311): java.net.SocketException: Permission denied 08-19 09:29:02.204: WARN/System.err(311): at org.apache.harmony.luni.platform.OSNetworkSystem.createStreamSocketImpl(Native Method) 08-19 09:29:02.214: WARN/System.err(311): at org.apache.harmony.luni.platform.OSNetworkSystem.createStreamSocket(OSNetworkSystem.java:186) 08-19 09:29:02.214: WARN/System.err(311): at org.apache.harmony.luni.net.PlainSocketImpl.create(PlainSocketImpl.java:265) 08-19 09:29:02.224: WARN/System.err(311): at java.net.Socket.checkClosedAndCreate(Socket.java:873) 08-19 09:29:02.224: WARN/System.err(311): at java.net.Socket.connect(Socket.java:1020) 08-19 09:29:02.224: WARN/System.err(311): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:62) 08-19 09:29:02.224: WARN/System.err(311): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:88) 08-19 09:29:02.224: WARN/System.err(311): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHTTPConnection(HttpURLConnectionImpl.java:927) 08-19 09:29:02.224: WARN/System.err(311): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:909) 08-19 09:29:02.234: […]
我想知道InputStreamn是否为空,但不使用read()方法。 有没有办法知道它是否是空的而不阅读?
InputStream.available()在Java中做什么? 我阅读了文档,但是我仍然无法解决。 该文件说: 返回可以从此inputstream读取(或跳过)的字节数,而不会被此inputstream的下一个调用者方法阻塞。 下一个调用者可能是相同的线程或另一个线程。 类InputStream的可用方法始终返回0。 他们是什么意思的阻止 ? 这是否意味着同步通话? 最重要的是, available()方法的目的是什么?
该文档说,不应该使用available()方法来确定InputStream的大小。 如何将InputStream的整个内容读入一个字节数组? InputStream in; //assuming already present byte[] data = new byte[in.available()]; in.read(data);//now data is filled with the whole content of the InputStream 我可以多次读取到一个固定大小的缓冲区,但是,我将不得不将所读取的数据组合到一个字节数组中,这对我来说是个问题。
我想知道是否有任何意识的方式链接多个InputStream到一个连续的Java(或斯卡拉)InputStream。 我需要的是parsing从FTP服务器通过networking加载的平面文件。 我想要做的是取文件[1..N],打开stream,然后将它们合并成一个stream。 所以当file1结束时,我想从file2开始读取等等,直到到达fileN的末尾。 我需要以特定的顺序读取这些文件,数据来自遗留系统,这些遗留系统会以barches方式生成文件,因此数据取决于另一个文件中的数据,但是我想将它们作为一个连续的stream处理,以简化我的域逻辑接口。 我search了四周,发现PipedInputStream,但我不积极,这是我所需要的。 一个例子会有帮助。
有什么办法来检查InputStream是否已被gzipped? 代码如下: public static InputStream decompressStream(InputStream input) { try { GZIPInputStream gs = new GZIPInputStream(input); return gs; } catch (IOException e) { logger.info("Input stream not in the GZIP format, using standard format"); return input; } } 我试过这种方式,但它不能按预期工作 – 从stream中读取的值是无效的。 编辑:添加了我用来压缩数据的方法: public static byte[] compress(byte[] content) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { GZIPOutputStream gs […]
我的应用程序中有一个奇怪的错误。 在我的应用程序可以下载一个zip文件,阅读它的内容,也删除它。 不pipe它到底是什么。 问题:只有在摩托罗拉Xoom(版本4.0.4)我可以下载文件,解压缩,我可以读取数据,我可以删除一切。 但是,如果我尝试再次下载该文件,并在解压文件并将文件复制到SD卡时崩溃,并出现错误EBUSY(设备或资源繁忙)。 为什么只有第一次工作? 这意味着什么错误? 为什么我只在Xoom上得到这个错误? 我找不到任何解决scheme。 在所有其他设备上,它工作正常,没有错误或问题。 logcat的: 07-18 12:27:46.774: E/PrepareMagTask(10057): IOException 07-18 12:27:46.774: E/PrepareMagTask(10057): java.io.FileNotFoundException: /mnt/sdcard/Android/data/com.xxxxxx.android/files/content/23760/emag.db: open failed: EBUSY (Device or resource busy) 07-18 12:27:46.774: E/PrepareMagTask(10057): at libcore.io.IoBridge.open(IoBridge.java:406) 07-18 12:27:46.774: E/PrepareMagTask(10057): at java.io.FileOutputStream.<init>(FileOutputStream.java:88) 07-18 12:27:46.774: E/PrepareMagTask(10057): at java.io.FileOutputStream.<init>(FileOutputStream.java:73) 07-18 12:27:46.774: E/PrepareMagTask(10057): at com.xxxxx.android.util.io.ZipHelper.uncompressEntry(ZipHelper.java:35) 07-18 12:27:46.774: E/PrepareMagTask(10057): at com.xxxxx.android.task.PrepareMagTask.doInBackground(PrepareMagTask.java:271) 07-18 12:27:46.774: E/PrepareMagTask(10057): […]
我正在使用Scanner(System.in)读取由空间或换行符分隔的一串整数。 在Java中做这个有更快的方法吗?