关于多线程读写文件的问题,,求教

webberweili 2005-12-27 09:37:20
以下代码就一个线程,现在我需要几个线程同时读文件,写文件,因为数据量会很大(几百万条数据)
请教如何用多线程实现
public class Test extends Thread {
public void run()
{
File f = new File("d://");
// String[] aa = f.list()
try {
String temp = "";
File rd = new File("d:\\1.txt");
File wt = new File("d:\\2.txt");
if (!wt.exists())// 如果文件不存,则建立
{
wt.createNewFile();
} else
{
wt.delete();
wt.createNewFile();
}
BufferedWriter bw = new BufferedWriter(new FileWriter(wt));
BufferedReader br = new BufferedReader(new FileReader(rd));
System.out.println(new java.util.Date());
while ((temp = br.readLine()) != null) {
char[] b = temp.toCharArray();
for (int i = 0; i < b.length; i++) {
if (b[i] != 'a') {
temp = temp.toLowerCase();
// System.out.println(temp);
// bw.write(temp,1,(temp.length()-1));
}
}
bw.write(temp);
bw.newLine();
}
System.out.println(new java.util.Date());
bw.flush();
br.close();
bw.close();

} catch (Exception e) {
e.printStackTrace();
}

}

public static void main(String[] args) {

new Test().start();

}
}
...全文
292 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
PhoticX 2005-12-28
  • 打赏
  • 举报
回复
多线程读写文件,使用同步。
kingofhawks 2005-12-28
  • 打赏
  • 举报
回复
互斥访问.
yuzl32 2005-12-28
  • 打赏
  • 举报
回复
供参照,注意文件访问冲突.
http://community.csdn.net/Expert/topic/4451/4451389.xml?temp=.4527704
webberweili 2005-12-28
  • 打赏
  • 举报
回复
顶一下,没人懂多线程么?
crazycy 2005-12-28
  • 打赏
  • 举报
回复
BufferedWriter bw = new BufferedWriter(new FileWriter(wt));
BufferedReader br = new BufferedReader(new FileReader(rd));
System.out.println(new java.util.Date());
while ((temp = br.readLine()) != null) {
==============
这个读,如果是同一个文件读,读的时间应该只有一个线程读,所谓的临界资源,这里就是文件,当然写也是,对于临界资源的访问,应该采用互斥的策略
crazycy 2005-12-28
  • 打赏
  • 举报
回复
多线程中
if (!wt.exists())// 如果文件不存,则建立
{
wt.createNewFile();
} else
{
wt.delete();
wt.createNewFile();
}
这个肯定要同步的;要不就会多个县城同时建立文件了

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧