java 在获取文件的时候,如何避免获取到正在读写的文件
答案:2 悬赏:50 手机版
解决时间 2021-03-02 01:23
- 提问者网友:未信
- 2021-03-01 18:36
我现在需要定时从一个目录中获取文件,然后转移到其他文件夹,再删除源文件,现在出现一个情况,一个比较大的文件是由其他程序写入但还没有写完,我的程序拿到这个文件之后马上就进行操作并删除源文件,导致文件损坏,我现在要求只要是正在被其他程序写入的文件都不去操作它,那如何判断该文件是正在被写入的文件?(注:我不能修改写入文件的程序)
最佳答案
- 五星知识达人网友:不甚了了
- 2021-03-01 19:45
加入
try{}catch{}语句
try{}catch{}语句
全部回答
- 1楼网友:由着我着迷
- 2021-03-01 20:34
最近在做html静态生成,需要从硬盘上把模版文件的内容读出来。然后,替换相关标签写到指定的文件中。无论是读写,都遇到了中文乱码问题。试过多种方法,发现下面一种可以避免中文乱码。(无论读取还是写入一定要进行编码转换。)
1、java读取文件,避免中文乱码。
public static string readfile(string filepathandname) {
string filecontent = "";
try {
file f = new file(filepathandname);
if(f.isfile()&&f.exists()){
inputstreamreader read = new inputstreamreader(new fileinputstream(f),"utf-8");
bufferedreader reader=new bufferedreader(read);
string line;
while ((line = reader.readline()) != null) {
filecontent += line;
}
read.close();
}
} catch (exception e) {
system.out.println("读取文件内容操作出错");
e.printstacktrace();
}
return filecontent;
}
2、java写入文件,避免中文乱码。
public static void writefile(string filepathandname, string filecontent) {
try {
file f = new file(filepathandname);
if (!f.exists()) {
f.createnewfile();
}
outputstreamwriter write = new outputstreamwriter(new fileoutputstream(f),"utf-8");
bufferedwriter writer=new bufferedwriter(write);
//printwriter writer = new printwriter(new bufferedwriter(new filewriter(filepathandname)));
//printwriter writer = new printwriter(new filewriter(filepathandname));
writer.write(filecontent);
writer.close();
} catch (exception e) {
system.out.println("写文件内容操作出错");
e.printstacktrace();
}
}
我试过写入的时候用
1、printwriter writer = new printwriter(new bufferedwriter(new filewriter(filepathandname)));
2、printwriter writer = new printwriter(new filewriter(filepathandname));
都不行。
以上代码经过运行可以避免中文乱码,关键是要编码转换。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯