相关疑难解决方法(0)

Java太多打开文件

我正在尝试写入多个文件,确切地说是19.写了几百次之后,我得到了Java IOException:打开的文件太多了.但是,就像我说的那样,我打开了19个文件,并且我在开始时打开了所有文件.这里有什么问题?我可以验证写入是否成功.

编辑:我没有使用try-catch-finally块.我让函数抛出异常.现在我把try-catch-finally放在他们周围,他们似乎做得更好.

大多数人都是对的,因为我打开的文件超出了我的想象.还在跟踪事情.稍后我会发布更新.

重新编辑:确保所有文件访问都用try-catch包装 - 最终修复了问题.谢谢

java file-io

45
推荐指数
2
解决办法
10万
查看次数

如何找出Java应用程序当前打开的文件数量?

假设您的应用程序执行的很多操作都涉及读取文件的内容.不言而喻,打开然后关闭的文件和生活是好的,除非..新文件进入速度更快,然后旧文件关闭.这是我发现自己陷入困境的腌制.

现在..有没有办法可靠地知道流程打开了多少文件?ls /proc/my_pid/fd | wc -l从JVM内部看起来可靠的东西?

我怀疑答案可能是特定于操作系统的,所以让我补充一点,我在Linux上运行Java.

java

37
推荐指数
3
解决办法
2万
查看次数

Jetty - java.lang.IllegalStateException:zip文件已关闭

我与Web服务器的某些连接出现了一些错误.

我看到在Jetty 7.6中解决了造成这种情况的错误.是的,我们在Jetty 7.5.4下运行的应用程序上遇到此错误,但我们也可以使用在较新版本9上运行的其他应用程序获得此错误.

你知道这可能是什么吗?

我们随机收到此错误:

java.lang.IllegalStateException: zip file closed
    at java.util.zip.ZipFile.ensureOpen(ZipFile.java:632)
    at java.util.zip.ZipFile.access$200(ZipFile.java:56)
    at java.util.zip.ZipFile$1.hasMoreElements(ZipFile.java:485)
    at java.util.jar.JarFile$1.hasMoreElements(JarFile.java:239)
    at org.eclipse.jetty.util.resource.JarFileResource.exists(JarFileResource.java:163)
    at org.eclipse.jetty.webapp.WebAppContext$Context.getResource(WebAppContext.java:1223)
    at org.eclipse.jetty.servlet.DefaultServlet.getResource(DefaultServlet.java:366)
    at org.eclipse.jetty.server.ResourceCache.lookup(ResourceCache.java:188)
    at org.eclipse.jetty.servlet.DefaultServlet.doGet(DefaultServlet.java:445)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:547)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:480)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:483)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:941)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:875)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:219)
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
    at org.eclipse.jetty.server.Server.handle(Server.java:345)
    at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441)
    at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:919)
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:582)
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218)
    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
    at java.lang.Thread.run(Thread.java:722)
Run Code Online (Sandbox Code Playgroud)

jetty

7
推荐指数
1
解决办法
2万
查看次数

Java SAXParser - 保持InputStream打开

BufferedInputStream想从中解析XML,SAXParser然后再重复使用它(例如.mark(int)&reset()).但是这个流在parse()方法中是关闭的.有可能以某种方式告诉SAXParser它保持开放吗?最后一种方法是使用不可关闭的流包装此流.

谢谢.

java sax stream

3
推荐指数
1
解决办法
3192
查看次数

标签 统计

java ×3

file-io ×1

jetty ×1

sax ×1

stream ×1