JAVA文件操作的问题

一文本文件如附件所示有n行数据每一行为一个字符串可以转换为字符串、数字、日期(日期形如2007-12-12)三种类型要求字符串长度大于40小于等于1的忽略其余的取第2到的... 一文本文件如附件所示 有n行数据每一行为一个字符串 可以转换为字符串、数字、日期(日期形如2007-12-12)三种类型
要求
字符串长度 大于40 小于等于1的 忽略 其余的取第2到的8字符 组成字符串 不足8个取至该行结尾
日期型 计算与2000年1月1日相差的毫秒数 进行累加
数字的将奇数忽略 偶数累加

将字符串 日期累加 数字累加的结果分三行输出 添加到给定文件的最后
文本文件如下:(我的思路是读取这个文件然后存入LIST中来)
2007-12-1
abcdefg
窗前明月光,疑是地上霜
13
26
附件预算定额:由[钻井工程成果表.mdb]
899
30
97
2001-1-1
1990-2-18
文件“优秀员工评选.doc”已经成功接收
68
86
就刚刚看的那个网站上的图片,也不可能都是他们公司的案例就刚刚看的那个网站上的图片,也不可能都是他们公司的案例就刚刚看的那个网站上的图片,也不可能都是他们公司的案例
轻车熟路
展开
 我来答
百度网友70ae8e86ac
2007-12-13 · TA获得超过1304个赞
知道小有建树答主
回答量:815
采纳率:0%
帮助的人:1103万
展开全部
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class OpText {

public static void main(String[] args) throws IOException{
File f = new File("d:\\file\\file.txt");
if(!f.exists()){
System.out.println("文件不存在!");
return;
}
// 累加数字偶数
int number = 0;
// 时间差累计结果
long timeAdded = 0;
// 累加字符串
StringBuffer strAppend = new StringBuffer();
InputStream input = new FileInputStream(f);
BufferedReader reader = new BufferedReader(new InputStreamReader(input));

String value = reader.readLine();
while(value != null){
try{
int n = Integer.parseInt(value.trim());
if(n%2 == 0){
number += n;
}
}catch(Exception e){
if(value.indexOf("-")>0){
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String standard = "2007-01-01";
try {
Date d = format.parse(value.trim());
Date standardDate = format.parse(standard);
timeAdded = timeAdded+ d.getTime()-standardDate.getTime();
} catch (ParseException e1) {
System.out.println("日期格式不正确!");
e1.printStackTrace();
}
}else{
if(value.length()>8){
strAppend.append(value.substring(1,8));
}else{
strAppend.append(value);
}
}
}
value = reader.readLine();
}

OutputStream output = new FileOutputStream("d:\\file\\file.txt",true);
output.write(("\r\n时间差:"+timeAdded+"\r\n").getBytes());
output.write(("偶数和:"+number+"\r\n").getBytes());
output.write(("字符串:"+strAppend.toString()).getBytes());

output.close();
reader.close();
input.close();
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式