zrrx笔试题(一)——文件复制&日期天数差
1. 利用输入输出流来复制文件
步骤:1.构造文件字节输入输出流 2.创建一个字节数组,用来指定每次复制的字节大小 3.输入流从源文件读取字节,输出流将字节写入文件
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- public class JavaIO {
- public static void main(String[] args) throws IOException {
- FileInputStream fis = new FileInputStream(
- "E:\\Download\\12.txt");
- FileOutputStream fos = new FileOutputStream("F:\\22.txt");
- byte[] b = new byte[1024000];
- int n;
- while ((n = fis.read(b)) != -1) {
- fos.write(b, 0, n);
- }
- fis.close();
- fos.close();
- }
- }
fis.read(b)的作用是从源文件最多读取b.length字节的数据送给b数组,返回的是读入的字节总数。
本例中b.length的长度指定为1024000,当最后一次不足1024000,例如只剩下5000字节时,返回的就是5000,此时所有字节读取完毕。下一次读入时由于已到达文件末尾,返回-1。
fos.write(b, 0, n)意思是将byte数组从偏移量0开始的n个字节写入文件输出流。
程序结束后记得要关闭输入输出流。
2. 计算两个日期之间相差间隔天数
法一:直接通过计算两个日期的毫秒数,他们的差除以一天的毫秒数,即可得到我们想要的两个日期相差的天数。
- public static long getQuot(String startdate, String enddate) {
- long m_intervalday = 0;//初始化时间间隔的值为0
- //使用的时间格式为yyyy-MM-dd
- SimpleDateFormat m_simpledateformat = new SimpleDateFormat("yyyy-MM-dd");
- try {
- //创建两个Date对象
- Date date1 = m_simpledateformat.parse(startdate);
- Date date2 = m_simpledateformat.parse(enddate);
- m_intervalday = date2.getTime() - date1.getTime();//计算所得为毫秒数
- m_intervalday = m_intervalday / 1000 / 60 / 60 / 24;//计算所得的天数
- } catch (ParseException e) {
- e.printStackTrace();
- }
- return m_intervalday;
- }
- //简写
- public static int differentDaysByMillisecond(Date date1,Date date2) {
- int days = (int) ((date2.getTime() - date1.getTime()) / (1000*3600*24));
- return days; }
法二:
通过Calendar类的日期比较。注意:这里需要考虑一下:
- 日期是跨年份的,如一个是2012年,一个是2015年的
- 年份是分闰年和平年的,各自的天数不同
- public static int differentDays(Date date1,Date date2){
- Calendar cal1 = Calendar.getInstance();
- cal1.setTime(date1);
- Calendar cal2 = Calendar.getInstance();
- cal2.setTime(date2);
- int day1= cal1.get(Calendar.DAY_OF_YEAR);
- int day2 = cal2.get(Calendar.DAY_OF_YEAR);
- int year1 = cal1.get(Calendar.YEAR);
- int year2 = cal2.get(Calendar.YEAR);
- if(year1 != year2){ //同一年
- int timeDistance = 0 ;
- for(int i = year1 ; i < year2 ; i ++){
- if(i%4==0 && i%100!=0 || i%400==0) //闰年
- { timeDistance += 366; }
- else //不是闰年
- { timeDistance += 365; } }
- return timeDistance + (day2-day1) ; }
- else //不同年
- { System.out.println("判断day2 - day1 : " + (day2-day1));
- return day2-day1; } }
法二测试代码:
- String dateStr = "2013-1-1 21:21:28";
String dateStr2 = "2015-1-2 1:21:28";- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- try {
- Date date2 = format.parse(dateStr2);
- Date date = format.parse(dateStr);
- System.out.println("两个日期的差距:" + differentDays(date,date2));
- } catch (ParseException e) {
- e.printStackTrace();
- }
zrrx笔试题(一)——文件复制&日期天数差的更多相关文章
- [置顶] Java编程笔试题之一 ----文件操作
题目:给定一个文件和一个字符串,判断文件是否包含该字符串,如果包含,请打印出包含该字符串的行号以及该行的全部内容. 思路: ①使用缓冲流(BufferedReader)读取文件,定义初始行号为0. ...
- js日期天数差
var s1 = "2007-01-01"; var s2 = "2007-12-31"; s1 = s1.replace(/-/g, "/" ...
- JS 计算日期天数差
function dayDiffer(startDate,endDate){ console.info((endDate.getTime - startDate.getTime())/(24*60*6 ...
- js计算日期天数差-2013-9-26
function daymath(sdate, edate) { var startdate = sdate; var enddate = edate; ...
- 算法笔试题整理——升级蓄水池 && 字符串数字表达式计算值 && 求旅游完所有景点需要的最少天数 && 宝箱怪
1. 小米笔试题——升级蓄水池 题目描述: 在米兔生活的二维世界中,建造蓄水池非常简单. 一个蓄水池可以用n个坐标轴上的非负整数表示,代表区间为[0-n]范围内宽度为1的墙壁的高度. 如下图1,黑色部 ...
- 【笔试题】Java 中如何递归显示一个目录下面的所有目录和文件?
笔试题 Java 中如何递归显示一个目录下面的所有目录和文件? import java.io.File; public class Test { private static void showDir ...
- java笔试题: ——将e:/source文件夹下的文件打个zip包后拷贝到f:/文件夹下面
将e:/source文件夹下的文件打个zip包后拷贝到f:/文件夹下面 import java.io.*; import java.util.zip.ZipEntry; import java.uti ...
- Java算法面试题:编写一个程序,将e:\neck目录下的所有.java文件复制到e:\jpg目录下,并将原来文件的扩展名从.java改为.jpg
package com.swift; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; i ...
- 【第一期百题计划进行中,快来打卡学习】吃透java、细化到知识点的练习题及笔试题,助你轻松搞定java
[快来免费打卡学习]参与方式 本期百题计划开始时间:2022-02-09,今日打卡题已在文中标红. 0.本文文末评论区打卡,需要登录才可以打卡以及查看其他人的打卡记录 1.以下练习题,请用对应的知识点 ...
随机推荐
- POJ ???? Monkey King
题目描述 Once in a forest, there lived N aggressive monkeys. At the beginning, they each does things i ...
- 【差分约束系统】【最短路】【spfa】CDOJ1646 穷且益坚, 不坠青云之志。
求一个有n个元素的数列,满足任意连续p个数的和不小于s, 任意连续q个数的和不大于t. 令sum[i]表示前i项的和(0<=i<=n,sum[0]=0) 那么题目的条件可转化为: sum[ ...
- 使用redis时出现java.util.ArrayList cannot be cast to java.lang.Long
java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.Long at redis.clients. ...
- shell-网上lnmp一键安装讲解
shell-网上lnmp一键安装讲解 #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/b ...
- 基于tiny4412的Linux内核移植(支持device tree)(一)
作者信息 作者: 彭东林 邮箱:pengdonglin137@163.com QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本 ...
- 【spring boot】使用定时任务@Scheduled 报错:Encountered invalid @Scheduled method 'dealShelf': Cron expression must consist of 6 fields (found 7 in "0 30 14 * * ? *")
在spring boot中使用使用定时任务@Scheduled 报错: org.springframework.beans.factory.BeanCreationException: Error c ...
- 十大流行linux
你可曾知道Linux的魅力或威力来自哪里?那就是,由于众多发行版百花齐放,Linux的阵营日益壮大,每一款发行版都拥有一大批用户,开发者自愿为相关项目投入精力.Linux发行版可谓是形形色色,它们旨在 ...
- WebSocket 是什么原理?为什么可以实现持久连接?(转载)
本文转载自知乎,来源如下: 作者:Ovear链接:https://www.zhihu.com/question/20215561/answer/40316953来源:知乎著作权归作者所有.商业转载请联 ...
- Ceph源码解析:概念
Peering:一个PG内的所有副本通过PG日志来达成数据一致的过程.(某PG如果处于Peering将不能对外提供读写服务) Recovery:根据Peering的过程中产生的.依据PG日志推算出的不 ...
- Servlet拦截静态图片的解决方案
一.现象 建立一个使用Freemarker的Web Project程序. Product.ftl中的代码为: <!DOCTYPE html PUBLIC "-//W3C//DTDHTM ...