java IO流读取多个文件问题

时间:2021-06-20 21:33:35
这里请教两个问题:
1.如何使用一个IO流连续读取多个不同的文件
2.如何使用IO流同时读取多个不同的文件

10 个解决方案

#1


求指导啊,从来没写过这样的操作

#2


我只做过一个IO流读取一个文件。没做过你说的那样的东西。
不过我遇到连续读取多个文件的时候,采用的方法是:
读取一个文件,把文件的内容缓存起来(用List,或者StringBuilder等等的容器)。然后读取另一个文件,再把内容缓存到同一个容器里面。直到最后一个文件读取完毕。我在对这个缓存内容的容器进行处理。

#3


http://www.java2s.com/Code/Java/File-Input-Output/Readssequentiallyfrommultiplesources.htm
这个是从网上搜的,应该可以解决第一个问题。
相信第二个问题也可以搜到。

就算自己来写,应该也不难封装,只要会操作一个文件,会list操作,那么就可以保存一个文件列表,轮流打开文件,顺序读取;或者同时打开一堆文件流,A文件读一点,B文件读一点。

#4


引用 2 楼 develop_design_level 的回复:
我只做过一个IO流读取一个文件。没做过你说的那样的东西。
不过我遇到连续读取多个文件的时候,采用的方法是:
读取一个文件,把文件的内容缓存起来(用List,或者StringBuilder等等的容器)。然后读取另一个文件,再把内容缓存到同一个容器里面。直到最后一个文件读取完毕。我在对这个缓存内容的容器进行处理。


这个可能会越界的.....或者可以试试把第一个文件的内容写入缓存,然后读第二个文件时把第一个文件的内容写入硬盘同时清空缓存,然后读第二个文件时,再在第一个写到硬盘的文件后面追加内容....如此类推....

#5


引用 4 楼 sam372648886gz 的回复:
Quote: 引用 2 楼 develop_design_level 的回复:

我只做过一个IO流读取一个文件。没做过你说的那样的东西。
不过我遇到连续读取多个文件的时候,采用的方法是:
读取一个文件,把文件的内容缓存起来(用List,或者StringBuilder等等的容器)。然后读取另一个文件,再把内容缓存到同一个容器里面。直到最后一个文件读取完毕。我在对这个缓存内容的容器进行处理。


这个可能会越界的.....或者可以试试把第一个文件的内容写入缓存,然后读第二个文件时把第一个文件的内容写入硬盘同时清空缓存,然后读第二个文件时,再在第一个写到硬盘的文件后面追加内容....如此类推....

同意

#6


第一个不知道,第二个因为要同时,也就并发,所以应该要使用线程,每个线程去负责读一个文件,也就做到了同时读取!

#7


1.如何使用一个IO流连续读取多个不同的文件
回答:可以连续读取,那说明程序要对每个文件进行遍历,所以这里需要你对本地目录遍历,然后一个个文件的读。

2.如何使用IO流同时读取多个不同的文件
回答:通时读取,那就说明你要并发执行读取操作,没读取一个文件开启一个线程执行任务,这样就能实现同时读取的操作。

#8


亲,你的需求是什么?你是不是理解错了?

为什么非要用一个流?关关停停的很快吗?

难道你们的JVM不允许多线程?就像GOOGLE ENGINE?

求解释


不然这么多人陪着你走弯路

#9


可以用CHANNEL 和BUFFER

#10


引用 9 楼 soton_dolphin 的回复:
可以用CHANNEL 和BUFFER


亲,通道也是一对一的,你要切换通道?你不关闭某个文件通道就要切换到另外一个?资源极大的浪费呀,亲!

而且就算你不关闭,那也得各种打开才行呀。

按照他的需求:“使用 一个IO流”,重点在“一个”;然后“使用IO流同时”,重点在“同时”。

所以我想问楼主:“是不是需求就没搞明白”

#1


求指导啊,从来没写过这样的操作

#2


我只做过一个IO流读取一个文件。没做过你说的那样的东西。
不过我遇到连续读取多个文件的时候,采用的方法是:
读取一个文件,把文件的内容缓存起来(用List,或者StringBuilder等等的容器)。然后读取另一个文件,再把内容缓存到同一个容器里面。直到最后一个文件读取完毕。我在对这个缓存内容的容器进行处理。

#3


http://www.java2s.com/Code/Java/File-Input-Output/Readssequentiallyfrommultiplesources.htm
这个是从网上搜的,应该可以解决第一个问题。
相信第二个问题也可以搜到。

就算自己来写,应该也不难封装,只要会操作一个文件,会list操作,那么就可以保存一个文件列表,轮流打开文件,顺序读取;或者同时打开一堆文件流,A文件读一点,B文件读一点。

#4


引用 2 楼 develop_design_level 的回复:
我只做过一个IO流读取一个文件。没做过你说的那样的东西。
不过我遇到连续读取多个文件的时候,采用的方法是:
读取一个文件,把文件的内容缓存起来(用List,或者StringBuilder等等的容器)。然后读取另一个文件,再把内容缓存到同一个容器里面。直到最后一个文件读取完毕。我在对这个缓存内容的容器进行处理。


这个可能会越界的.....或者可以试试把第一个文件的内容写入缓存,然后读第二个文件时把第一个文件的内容写入硬盘同时清空缓存,然后读第二个文件时,再在第一个写到硬盘的文件后面追加内容....如此类推....

#5


引用 4 楼 sam372648886gz 的回复:
Quote: 引用 2 楼 develop_design_level 的回复:

我只做过一个IO流读取一个文件。没做过你说的那样的东西。
不过我遇到连续读取多个文件的时候,采用的方法是:
读取一个文件,把文件的内容缓存起来(用List,或者StringBuilder等等的容器)。然后读取另一个文件,再把内容缓存到同一个容器里面。直到最后一个文件读取完毕。我在对这个缓存内容的容器进行处理。


这个可能会越界的.....或者可以试试把第一个文件的内容写入缓存,然后读第二个文件时把第一个文件的内容写入硬盘同时清空缓存,然后读第二个文件时,再在第一个写到硬盘的文件后面追加内容....如此类推....

同意

#6


第一个不知道,第二个因为要同时,也就并发,所以应该要使用线程,每个线程去负责读一个文件,也就做到了同时读取!

#7


1.如何使用一个IO流连续读取多个不同的文件
回答:可以连续读取,那说明程序要对每个文件进行遍历,所以这里需要你对本地目录遍历,然后一个个文件的读。

2.如何使用IO流同时读取多个不同的文件
回答:通时读取,那就说明你要并发执行读取操作,没读取一个文件开启一个线程执行任务,这样就能实现同时读取的操作。

#8


亲,你的需求是什么?你是不是理解错了?

为什么非要用一个流?关关停停的很快吗?

难道你们的JVM不允许多线程?就像GOOGLE ENGINE?

求解释


不然这么多人陪着你走弯路

#9


可以用CHANNEL 和BUFFER

#10


引用 9 楼 soton_dolphin 的回复:
可以用CHANNEL 和BUFFER


亲,通道也是一对一的,你要切换通道?你不关闭某个文件通道就要切换到另外一个?资源极大的浪费呀,亲!

而且就算你不关闭,那也得各种打开才行呀。

按照他的需求:“使用 一个IO流”,重点在“一个”;然后“使用IO流同时”,重点在“同时”。

所以我想问楼主:“是不是需求就没搞明白”