當前位置:首頁 » 編程語言 » 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方法,一個實現讀取,另一個實現輸出的功能。再用兩條線程分別操作這兩個方法。

熱點內容
java分隔 發布:2025-02-08 07:15:02 瀏覽:811
源碼乘法豎式 發布:2025-02-08 07:05:48 瀏覽:136
天天酷跑腳本腳本精靈 發布:2025-02-08 07:05:15 瀏覽:345
ios資料庫遷移 發布:2025-02-08 07:00:16 瀏覽:850
安卓sdl是什麼 發布:2025-02-08 07:00:05 瀏覽:907
離線腳本怎麼寫 發布:2025-02-08 06:59:22 瀏覽:832
java學習價錢 發布:2025-02-08 06:58:39 瀏覽:958
如何用伺服器提交ms作業 發布:2025-02-08 06:58:03 瀏覽:160
c語言的列印函數 發布:2025-02-08 06:43:54 瀏覽:788
海康威視區域網訪問 發布:2025-02-08 06:41:16 瀏覽:966