当前位置:首页 » 编程语言 » java多线程读取

java多线程读取

发布时间: 2023-07-19 12:03:11

java多线程同时读取一个文件,这个方法可行吗

不可行。每次读取文件都需要创建缓存文件流,很占内存,而且多次读取实际上也是一个文件,还不如直接读取文件,之后通过条件多次获取需要的内容来的实际。
可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
System.out.println(str);//原样输出读到的内容,此处可以添加条件进行不同的处理
};
备注: 流用完之后必须close掉,如上面的就应该是:bre.close(),否则bre流会一直存在,直到程序运行结束。

Ⅱ java中怎么用多个线程同时对一个文件读取,最终将文件内容保存到一个字节数组中去呢

多线程读取文件在一块硬盘上没用,瓶颈在硬盘I/O,而不在CPU和内存。读取文件时,CPU不用复杂的计算工作,只是数据传输而已,多线程反而造成磁头来回移动,效率不高。如果是两块以上的硬盘,可以用不同的线程访问不同的硬盘,效率比单线程要高
而且多线程操作同一文件除了效率还会有多线程问题,多个线程同时往数组里存数据还会有线程安全问题,如果不同步处理读取的文件就是错误的。
如果读取的话只能设置每个线程各自读取偏 移量
读取文件大小(比如大小是200K)。 2,启动5个线程,第一个线程读到40,第二个线程跳过40在读到80,总之得合理安排好各个线程读取的大小。这样才能不重复读取。大数据处理框架maprece原理和此类似

Ⅲ java一个Socket连接多线程是否能操作两个读取流

可以啊 ,不过需要新建两个实现Runnable 借口的类,重写run方法,一个实现读取,另一个实现输出的功能。再用两条线程分别操作这两个方法。

热点内容
ea服务器怎么连接 发布:2025-02-08 05:16:45 浏览:461
更加密更改 发布:2025-02-08 05:15:20 浏览:782
仓储资源配置都需要开展哪些任务 发布:2025-02-08 05:13:51 浏览:675
探针数据库 发布:2025-02-08 05:13:35 浏览:79
cfft算法 发布:2025-02-08 04:53:59 浏览:960
极客学院php 发布:2025-02-08 04:52:32 浏览:779
书本编译是什么意思 发布:2025-02-08 04:45:56 浏览:953
淘宝密码账号在哪里看 发布:2025-02-08 04:29:39 浏览:536
描绘四季的美文写一份朗读脚本 发布:2025-02-08 04:29:21 浏览:139
金蝶软件服务器是电脑吗 发布:2025-02-08 04:27:06 浏览:974