naruto258
naruto258
采纳率0%
2016-12-16 03:58

各位大神,这是一个有关Java文件操作和线程,进程的问题,求大神支招,小弟感激不尽

5

我现在有一个任务,要把大量的数据从数据库A中读出来写入到TXT中平(这中间我把数据库中的数据显示写入到map缓存中)均一天的数据是3个G,然后再从TXT中读取数据,并计算数据中的一些值然后插查入到数据库B中,由于数据量很大,所以这个过程很耗时,读写文件的方式都是用FileWriter和FileReader这俩个流来实现的,想请问一下大神们用什么样的方法才能使读写操作的速度更快一些呢,提高一下效率。

另外,采用什么样的方法才能才能使该功能同时启动多个,即是把代码编程多线程,多进程的方式,同时读取文件中的数据并计算或者把数据写入到TXT中,当中互不影响,保证数据的准确性。

最大的问题是,当我的程序运行到一半是,由于某些原因突然停电或者一些意外原因,程序突然中止了,在程序重新启动时,我要怎么保证程序继续运行按照停电时的数据,而不是重新开始。

求大神指教了!!!!!!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • ljheee ljheee 5年前

    读取每个文件的时候开启一个线程,看能不能分成多个文件,

    点赞 评论 复制链接分享
  • qq_25673113 lkj41110 5年前

    读取和写都是FileWriter和FileReader流操作的话,也就是每个文件都是不相关的,可以在读取每个文件的时候开启一个线程,写入每个文件的时候开启一个线程,因为资源没有共享,所以不会有线程安全问题。
    关于数据中断,你执行完一个线程后可以做一个记入,在数据库中有个字段表示是否读取,或者用其他方式记入操作过的文件

    点赞 评论 复制链接分享
  • dcxy0 Q544471255 5年前

    试试数据库同步:http://blog.csdn.net/xuemoyao/article/details/14002209

    你那个确实可以用多线程实现,对于不重新开始读取,你可以在读取的时候记录一个标记,下次读取的时候跳过即可。

    点赞 评论 复制链接分享

相关推荐