「java打开文件过多」java 多文件
今天给各位分享java打开文件过多的知识,其中也会对java 多文件进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java读取一个文件夹内的文本,文本过多时速度会很慢,什么技术或方法能加快读取?
- 2、从网上下载了几例java程序,每个文件夹里都有很多文件,想用eclipse打开,但不知怎么办?
- 3、使用java.util.zip.ZipFile,压缩包内文件数量过多则报错问题.
- 4、sqlldr : java.io.IOException: error=24, Too many open files
- 5、Java打开本地文件夹里面的多个.txt文件
- 6、too many open files 的问题怎么解决
java读取一个文件夹内的文本,文本过多时速度会很慢,什么技术或方法能加快读取?
优化的话要看你需求呀,你动不动就读完所有文本肯定慢啊,或者你可以把文本的名字起的有规律一点,然后索引打开咯。
从网上下载了几例java程序,每个文件夹里都有很多文件,想用eclipse打开,但不知怎么办?
(我才学所以说哈自己的见解,非喜勿喷)你可以用cmd里的java 命令直接打开,或者点开randfile。java,复制代码,再在eclipse创建一个randfile拷贝进去就应该可以了
使用java.util.zip.ZipFile,压缩包内文件数量过多则报错问题.
import org.apache.commons.io.IOUtils;
/**
使用apache 的 IOUtils 能解决
**/
File zip = new File("");// 你的文件
FileInputStream fin = new FileInputStream(zip);
ZipInputStream zin = new ZipInputStream(fin);
ZipEntry ze = null;
while ((ze = zin.getNextEntry()) != null) {
FileOutputStream fout = new FileOutputStream(new File("",
ze.getName()));
IOUtils.copy(zin, fout);
IOUtils.closeQuietly(fout);
zin.closeEntry();
}
IOUtils.closeQuietly(zin);
嗯。还有其他的方法你可以看一下。 IOUtils 的方法。
sqlldr : java.io.IOException: error=24, Too many open files
1. 提高linux中默认同时打开的最大文件数量(默认是1024)
最便捷的方法是在/etc/profile文件中加入ulimit -n 最大开启数量
但是这种方法无法从根本上查出什么原因导致java打开了这么多的文件
2. java端调查开启文件多的原因
Linux下查看进程打开了哪些文件
lsof -p 进程id - 打开的具体文件
lsof -p 进程id|wc -l - 打开文件的数量
通过调查发现,java开了很多TYPE为FIFO(Linux中的管道)的文件,因此联想到有可能是java代码中的流没有正常关闭或者释放导致的。
而且Java在Linux下执行命令的时候需要用到Process类,这个类在使用后需要destroy()掉,否者也会导致文件数开启的过多
Java打开本地文件夹里面的多个.txt文件
= =!最简单的是按文件数量设置进度最大值,当然。如果每个文件内容差距很大的话,会出现进度条时快时慢的情况。
每个文件file.length(),然后先把多个文件大小加起来。
读取的时候按读取内容长度和总长度做进度显示也是。第二种方法准确些。不过只是为了显示进度增加这些性能开销不划算。建议使用文件数量和已经读取的文件数量做进度显示哈.
too many open files 的问题怎么解决
这是因为网络请求过多,也就导致了系统打开的文件过多。每一个连接都会当成“文件”看待的。
于是用命令
ulimit -a
(效果:查看每个用户允许打开的最大文件数)
看到最大文件数是1024,将其更改大点,如
ulimit -n 4096
然后必须重启下网络服务,我用的是WebLogic,重启之后便没有出现异常。
导致 Too many open files ,网络请求过多是一种可能,但也有可能是程序上的缺陷,如没有释放一些文件句柄,程序open了文件却忘记了在最后close。但我确信工程中没有用到打开文件这一环节,因此这个可能是排除掉了。
用lsof -p [进程ID] 可以看到某ID的打开文件状况。进程ID可能用 ps -ef|grep java列出weblogic的进程ID,然后用此ID套入lsof -p ID号,咳,一大堆的请求哟,这显然是网络请求过多造成了 Too many open files。适当调整后便已消除这种现象。
相关日志
Linux下的几种桌面
Java 8 正式发布,新特性全搜罗
Facebook:Java漏洞曾使员工电脑被安装恶意软件
甲骨文发布Java紧急更新 专家称未修复漏洞
Linux下socket最大连接数 ulimit -n 最大值修改
java打开文件过多的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 多文件、java打开文件过多的信息别忘了在本站进行查找喔。
发布于:2022-11-27,除非注明,否则均为
原创文章,转载请注明出处。