java–IO流hello版回顧之前學習的知識點
package cn.hncu.io.hello;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import javax.swing.JOptionPane;import org.junit.Test;public class ReadWriteHello { public static void main(String[] args) { //readDemo(); writeDemo(); } PRivate static void writeDemo() { FileOutputStream out = null; //寫文件 try { out = new FileOutputStream("d:/a/files/a_utf8.txt"); String str = "我是中國人,我為woshi一名中國工產(chǎn)黨員感到自豪!"; out.write(str.getBytes("gbk"));//寫文件時指定碼表進行編碼 } catch (FileNotFoundException e) { System.out.println("文件沒找到!"); } catch (IOException e) { System.out.println("文件寫失敗了!"); }finally{//IO流中最后一定要記得進行關流操作 try { out.close(); } catch (IOException e) { throw new RuntimeException("寫文件流關閉失敗!", e); } } } @SuppressWarnings("unused") private static void readDemo() { byte[] buf = new byte[512]; FileInputStream in = null; try { in = new FileInputStream("d://a//files//a.txt"); in.read(buf); //下面這種方法是讀取不出來的,因為一個漢字對應的字節(jié)數(shù)不止一個// for(byte b:buf){// System.out.print((char)(b));// } String str = new String(buf,"gbk");//讀取文件并且指定編碼,解碼 System.out.println(str); } catch (FileNotFoundException e) { System.out.println("文件沒有找到!"); } catch (IOException e) { System.out.println("文件讀取失敗!"); }finally{//IO流中最后一定要記得進行關流操作 try { in.close(); } catch (IOException e) { throw new RuntimeException("讀取流關閉失敗!", e); } } } //演示老師今天講的知識點!---學校的javaEE課程 @Test public void time(){ //玩轉(zhuǎn)時間的三個類----Date,Calendar,DateFormate(由于DateFormat為抽象類,所以我們一般用它的直接子類SimpleDateFormate) long time1 = new Date().getTime(); Date d = new Date(); System.out.println("當前時間對象:"+d);//Mon Feb 27 19:13:32 CST 2017輸出的時間對象 System.out.println("一共經(jīng)過了多少毫秒:"+d.getTime());//拿到1970年1月1日00:00:00 000到當前時間的毫秒值 //當前這個Date對象里面的方法很多已經(jīng)過時了,我們現(xiàn)在用另外一個類來進行操作--Calendar類操縱時間 Calendar cal = Calendar.getInstance();//由于Calendar中的構(gòu)造方法權(quán)限是protected受保護的,而我們知道protected的權(quán)限,所以我們只能通過工廠方法來造Calendar類對象 int y = cal.get(Calendar.YEAR);//獲得當前電腦系統(tǒng)中右下角位置的日歷信息 int m = cal.get(Calendar.MONTH); int day = cal.get(Calendar.DAY_OF_MONTH); System.out.println(y+"年"+m+"月"+day+"日"+"某一天"+Calendar.DATE); //下面演示第三個類--SimpleDateFormat SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss SSS");//指定日期格式 String str = sdf.format(new Date()); System.out.println(str); long time2 = new Date().getTime(); System.out.println("程序一共運行了多長時間:"+(time2-time1));//單位為毫秒值 JOptionPane.showMessageDialog(null, "呵呵噠"); //解下來進行演示某個人(這里我用自己來代替實現(xiàn))從出生到今天共過了多少天!---好像底層是通過毫秒數(shù)進行計算的吧! Date date = new Date(); //拿到當前時間---從1970.1.1. 00:00:00 000時間到現(xiàn)在一共經(jīng)過多少毫秒數(shù) long mil = date.getTime(); //String birth = "1995/12/10 00:00:00 000";//7751天 String birth = "2017/2/25 00:00:00 000"; //使用SimpleDateFormat類將birth進行解析! SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss SSS"); try { Date dd = sdf2.parse(birth); long mil2 = dd.getTime();//拿到這個人的從1970.1.1 00:00:00 000到這個人出生的毫秒值拿到 System.out.println("這個人從出生到現(xiàn)在一共經(jīng)歷了"+((mil-mil2)/(24*60*60*1000))+"天"); } catch (ParseException e) { JOptionPane.showMessageDialog(null, "當前日期解析失敗!"); } }}新聞熱點
疑難解答