MyException - 我的异常网
当前位置:我的异常网» J2SE » Java单线程,频繁操作文件有关问题

Java单线程,频繁操作文件有关问题(2)

www.MyException.Cn  网友分享于:2013-01-19  浏览:69次

//一些资源文件,也贴出来吧。
XML code



##File System Configurations
#本地工作根目录,注意如果是路径,需要注意转义符号的使用
##Local working directionary,becarefull about the path ,int the configuration need "\" note
LOCAL_WORKING_DICTIONARY = D:\\Applications\\BPOES_DATA\\BPOES_BPOFRONT_C002ZRRS\\WORKING_STATION
#异常XML备份文件夹名称
##Exception XML files backup in this file
EXCEPTION_FILE_BACKUP = XML_BACKUP
#报文临时存放目录
#Exception XML files ware stored in this files temporary
CUST_XML_TEMP_FILE = CUST_XML_TEMP
#报文等待下载图片的目录
#XML file in this file, waiting for download the images.
CUST_XML_FILE = CUST_XML

######################################################################################

##Db Configurations


#Versions Configurations

#####################################################################################
###其他属性设置
#线程运行间隔时间/毫秒
#Thread runing times
THREAD_TEMP_TIME = 500
#XML文件在临时文件夹中存放的至少时间/毫秒
#The time of xml stored in file
XML_LESS_STORED_TIME = 120000

##配置日志文件信息
##The runing log configurations
#Information log
LOG_INFOS_FILE_PATH = .\\log\\info
LOG_INFOS_FILE_NAME = info.txt
LOG_INFOS_FILE_MAXLENGTH = 10
#Error log
LOG_ERROR_FILE_PATH = .\\log\\error
LOG_ERROR_FILE_NAME = error.txt
LOG_ERROR_FILE_MAXLENGTH = 10

##The Tempory files info
LOG_TEMP_FILE_NAME = TEMPFILES

#######################################################################################
IMAGE_STORED = .\\image
IMAGE_NAME = tray2.png
#######################################################################################
TIME_TYPE = yyyy-MM-dd HH:mm:ss




线程调用每休眠500ms调用一次上面的方法。
打印出来的结果:
=========================================
创建临时文件夹.\log\info\TEMPFILES
将文件info.txt转移到TEMPFILES中
开始重命名.\log\info\TEMPFILES\info.txt
info.txt重命名失败false
删除.\log\info\info.txt的结果是false
开始创建新的文件.\log\info\info.txt
删除.\log\info\TEMPFILES
删除.\log\info\TEMPFILES结果是false
删除.\log\info\TEMPFILES\info.txt结果是true
=========================================
程序实现的功能是:
1.使用线程对info.txt文件的大小进行监控。
2.如果info.txt的文件大小大于固定大小(比如程序中设置的大小事12KB),那么将info.txt转移到同级目录中的TEMPFILE文件夹中,然后将TEMPFILE/info.txt重命名为 (当前日期时间+info.txt)的格式到log/info.txt同级目录中,并且删除info.txt,然后新建info.txt文件。如果小于12KB,那么不做任何操作。
3.删除TEMPFILE/info.txt和TEMPFILE文件和文件夹。
4.线程第一次运行能够实现预期的效果,但是线程运行多次过后,当info.txt文件>12kb时输出的信息如上面。
5.如果我没有说清楚,大家可以将上面的代码复制后自己运行下。就知道问的所在了。
6.最主要的是上面的info.txt文件的大小是随时可变的。也就是正常增长。

------解决方案--------------------
主要问题有:
Java code
bool = tempFileTxt.renameTo(newTempFileTxt); //重名名以前可以先判断tempFileTxt是否存在,即判断是否真的复制成功了,
//另,临时文件夹没必要每次创建,程序退出时把临时文件夹删除就可以了
//还有,为何不直接复制的时候,把目标文件名直接带上日期,这样后面就不需要重命名了
            if (bool) {
                System.out.println(tempFileTxt.getName() + "重命名成功" + bool);
            } else {
                System.out.println(tempFileTxt.getName() + "重命名失败" + bool);
            }
            // 建立新的文件
            boolean bool1 = file.delete(); //如果file文件被其他程序使用,删除必然失败
                                               //所以不应该删除文件,而是把文件内容清空
            System.out.println("删除" + file.getPath() + "的结果是" + bool1);
            System.out.println("开始创建新的文件" + file.getPath());
            try {
                file.createNewFile();
            } catch (IOException e) {
                System.out.println("创建" + file.getName() + "失败" + bool);
                e.printStackTrace();
            }

文章评论

旅行,写作,编程
旅行,写作,编程
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
我的丈夫是个程序员
我的丈夫是个程序员
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
程序员和编码员之间的区别
程序员和编码员之间的区别
我是如何打败拖延症的
我是如何打败拖延症的
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
漫画:程序员的工作
漫画:程序员的工作
程序员应该关注的一些事儿
程序员应该关注的一些事儿
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
如何成为一名黑客
如何成为一名黑客
 程序员的样子
程序员的样子
总结2014中国互联网十大段子
总结2014中国互联网十大段子
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
老程序员的下场
老程序员的下场
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
程序员都该阅读的书
程序员都该阅读的书
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
鲜为人知的编程真相
鲜为人知的编程真相
为什么程序员都是夜猫子
为什么程序员都是夜猫子
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
程序员必看的十大电影
程序员必看的十大电影
编程语言是女人
编程语言是女人
每天工作4小时的程序员
每天工作4小时的程序员
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
代码女神横空出世
代码女神横空出世
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
中美印日四国程序员比较
中美印日四国程序员比较
Java程序员必看电影
Java程序员必看电影
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有