qq_34214381 2016-03-10 01:29 采纳率: 50%
浏览 1657
已采纳

求帮写一个java小程序

读取一个txt文件,文件中有一个8位的日期(任意),读出日期并打印此从日期开始的一个月日历,最好能有详细代码和注释

  • 写回答

6条回答 默认 最新

  • 毕小宝 博客专家认证 2016-03-10 02:16
    关注

    参考代码如下:

     import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.UnsupportedEncodingException;
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    
    public class DateCalendar {
        public static void main(String[] args) {
            printLatestMonth("src/date.txt");
        }
    
        public static void printLatestMonth(String filePath){
            String fileContent = readFromFile(filePath,null);
            if(fileContent==null||fileContent.length()<8){
                System.out.println("日期格式不正确,请保证日期格式为yyyyMMdd");
                return;
            }
    
            DateFormat format = new SimpleDateFormat("yyyyMMdd");
            Calendar calendar = Calendar.getInstance();
            try {
                Date currentDate  = format.parse(fileContent);
                calendar.setTime(currentDate);
                System.out.println("crurent date is:"+currentDate);
                for(int i = 0;i<30;i++){
                    calendar.add(Calendar.DATE, 1);
                    System.out.println(calendar.getTime());
                }
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
        public static String readFromFile(String fileName,String charSet){
            if (fileName == null || "".equals(fileName)) {
                System.out.println("文件名称为空...");
                return "";
            }
    
            // 设置字符编码
            if(charSet==null||charSet.length()==0){
                charSet = "UTF-8";
            }
    
            File file = new File(fileName);
            FileInputStream fin = null;
            StringBuffer buffer = new StringBuffer();
            try {
                fin = new FileInputStream(file);
                BufferedReader reader = new BufferedReader(new InputStreamReader(
                        fin, charSet));
                String content = reader.readLine();
                while (content != null) {
                    buffer.append(content);
                    // 循环读取下一行,没有这行代码就是死循环的啦。。。
                    content = reader.readLine();
                }
                reader.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (fin != null) {
                    try {
                        fin.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
    
            return buffer.toString();
        }
    }
    
    

    src目录下文件格式:20160310

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 能给我一些人生建议吗
  • ¥15 mac电脑,安装charles后无法正常抓包
  • ¥18 visio打开文件一直显示文件未找到
  • ¥15 请教一下,openwrt如何让同一usb储存设备拔插后设备符号不变?
  • ¥30 使用quartz框架进行分布式任务定时调度,启动了两个实例,但是只有一个实例参与调度,另外一个实例没有参与调度,不知道是为什么?请各位帮助看一下原因!!
  • ¥50 怎么获取Ace Editor中的python代码后怎么调用Skulpt执行代码
  • ¥30 fpga基于dds生成幅值相位频率和波形可调的容易信号发生器。
  • ¥15 R语言shiny包和ncdf4包报错
  • ¥15 origin绘制有显著差异的柱状图和聚类热图
  • ¥20 simulink实现滑模控制和pid控制对比,提现前者优势