黑马程序员--第十八天:IO流第一天
2013-06-08 01:32
309 查看
---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
//18-1 import java.util.*; public class SystemDemo { public static void main(String[] args){ //Properties 是HashTable的子类,也就是Map的子类 Properties prop = System.getProperties(); //获取指定系统信息 String value = System.getProperty("os.name"); System.out.println("val="+value); //在系统中设定一些指定系统信息 System.setProperty("mykey", "myvalue"); //获取所以属性信息 /*for(Object obj: prop.keySet()){ String value = (String)prop.get(obj); System.out.println(obj+"::"+value); }*/ //java 命令查看java 参数列表 //动态加载一些属性信息,在cmd中用-Dha=hahaha //详细命令 java -Dha=hahaha SystemDemo String v = System.getProperty("ha"); System.out.println("v="+v); } } /* 总结: System.getProperties(); System.getProperty("key"); System.setProperty("key","value"); prop.keySet(); // Property 类的非静态方法。 prop.get(obj);//get属于Property类,而getProperty属于System. */ /*18-2 Runtime:使应用程序与其运行环境相连接 没有构造函数,不可new,可想到该类的方法都是静态的。 然而该类中还有非静态方法,则该类提供了方法用于获取本类对象 该方法为getRuntime(); 这个特点可以看出该类使用了单例设计模式 */ class RuntimeDemo { public static void main(String[] args) throws Exception { Runtime r = Runtime.getRuntime(); Process p = r.exec("Notepad.exe SystemDemo.java"); Thread.sleep(4000); p.destroy(); System.out.println("Hello World!"); } } /* 总结 Runtime.getRuntime(); //Runtime 类的静态方法 r.exec("Notepad.exe SystemDemo.java"); //Runtime 类的非静态方法 Thread.sleep(4000); //Thread 类的静态方法 p.destroy(); // Process 类的destroy */ //18-3 import java.util.*; import java.text.*; class DateDemo { public static void main(String[] args) { Date d = new Date();//打印的时间格式不合适 System.out.println(d); SimpleDateFormat sdt = new SimpleDateFormat("yyyy年MM月dd日 E hh:mm:ss"); String time = sdt.format(d); System.out.println(time); long l = System.currentTimeMillis(); Date date = new Date(l); System.out.println(date); } } /* 总结 new Date(); //Date类的构造函数 new SimpleDateFormat("yyyy年MM月dd日 E hh:mm:ss"); //SimpleDateFormat 类构造函数 sdt.format(d); //SDF类的format方法 //提问:format有3个参数,为何只用一个参数也能正常的运行? //因为用的是父类的方法。 */ //18-4 import java.util.*; import java.text.*; class CalendarDemo { public static void main(String[] args) { String[]month = {"一","二","三","四","五","六","七","八","九","十","十一","十二"}; String[]week = {"","日","一","二","三","四","五","六"}; Calendar c = Calendar.getInstance(); sop(c.get(Calendar.YEAR)+"年"+c.get(Calendar.MONTH)+"月"); sop(c.get(Calendar.YEAR)+"年"); sop(month[c.get(Calendar.MONTH)]+"月"); sop(c.get(Calendar.DAY_OF_MONTH)+"日"); sop("星期"+week[c.get(Calendar.DAY_OF_WEEK)]); } public static void sop (Object obj){ System.out.println(obj); } } /* 总结 Calendar.getInstance(); c.get(Calendar.YEAR); String[]month = {""};//String 数字, 运用查表法。 */ class CalendarDemo2 { public static void main(String[] args) { Calendar c = Calendar.getInstance(); c.set(2015,5,5); c.add(Calendar.YEAR, 5);//向前推就是加 负的值 show(c); System.out.println("Hello World!"); } public static void show(Calendar c) { String[]month = {"一","二","三","四","五","六","七","八","九","十","十一","十二"}; String[]week = {"","日","一","二","三","四","五","六"}; //Calendar c = Calendar.getInstance(); sop(c.get(Calendar.YEAR)+"年"+c.get(Calendar.MONTH)+"月"); sop(c.get(Calendar.YEAR)+"年"); sop(month[c.get(Calendar.MONTH)]+"月"); sop(c.get(Calendar.DAY_OF_MONTH)+"日"); sop("星期"+week[c.get(Calendar.DAY_OF_WEEK)]); } public static void sop (Object obj){ System.out.println(obj); } } /* 总结 c.set(2015,5,5); c.add(Calendar.DAY_OF_MONTH, -1); */ //18-5 class MathDemo { public static void main(String[] args) { System.out.println("Hello World!"); } } /* 总结 ceil(); floor(); random(); pow(2,3);//指数运算 new Random().nextint(10); DecimalFormat df = new DecimalFormat(".00"); df.format(); */ //18-7 import java.io.*; class FileWriteDemo { public static void main(String[] args) throws IOException { //创建或覆盖已有文件于指定目录,该对象一被初始化就必须明确被操作的文件对象。 FileWriter fw = new FileWriter("demo.txt"); //把字符写入到流中 fw.write("adfaffa"); //刷新缓冲区 fw.flush(); //刷新并关闭缓冲区 fw.close(); System.out.println("Hello World!"); } } /* sum: new FileWriter("demo.txt"); fw.write("afadf"); fw.flush(); fw.close(); */ //18-8 import java.io.*; class FileWriterDemo2 { public static void main(String[] args) { System.out.println("afaf"); FileWriter fw = null; try{ fw = new FileWriter("k:\\demo.txt"); fw.write("abdaf"); } catch(Exception e){ System.out.println(e.toString()); } finally{ try{ if(fw!=null) //必须判断fw不是空指针。 fw.close(); } catch(Exception e){ System.out.println(e.toString()); } } } } /* sum: 必须判断fw不为空指针。 */ //18-9 import java.io.*; class FileWriterDemo3 { public static void main(String[] args) throws IOException { FileWriter fw = new FileWriter("demo.txt", true); //参数: //file - 要写入数据的 File 对象 //append - 如果为 true,则将字节写入文件末尾处,而不是写入文件开始处 fw.write("\r\nwindows换行符,\nlinux换行符"); fw.close(); } } /* sum: new FileWriter("demo.txt",true);//续写文件 \r\n,与\n的区别。 */ //18-10 import java.io.*; class FileReaderDemo { public static void main(String[] args) throws IOException { //创建目标文件的流对象 FileReader fr = new FileReader("demo.txt"); //read一次读一个字符,且自动向下移动。当文件读完是返回-1。 //read();返回: //作为整数读取的字符,范围在 0 到 65535 之间 (0x00-0xffff), //如果已到达流的末尾,则返回 -1 int ch = 0; while((ch = fr.read())!=-1){ System.out.println((char)ch); } /*while(true){ int ch = fr.read(); if(ch==-1) break; System.out.println(ch); }*/ fr.close(); } } /* sum: fr.read(); */ //18-11 import java.io.*; class FileReaderDemo2 { public static void main(String[] args) throws IOException { FileReader fr = new FileReader("demo.txt"); //read(char[]) 返回读到字符个数,当数据读完是返回-1。 char[] buff = new char[1024]; int num = 0; while((num=fr.read(buff))!=-1) System.out.print(new String(buff,0,num)); //用print而不用println fr.close(); } } /* sum: read(char[]); new String(buff,0,num);//分配一个新的 String,它包含取自字符数组参数一个子数组的字符。 */ //18-13 import java.io.*; class CopyDemo { public static void main(String[] args) { System.out.println("Hello World!"); } public static void copy(){ FileReader fr = null; FileWriter fw = null; try{ fr = new FileReader("FileReaderDemo.java"); fw = new FileWriter("FileReaderDemo_copy.java"); char [] buff = new char[1024]; int len =0; while((len = fr.read(buff))!=-1) fw.write(new String(buff,0,len)); } catch(IOException e){ throw new RuntimeException("读写失败"); } finally{ try{ if(fr!=null) fr.close(); }catch(IOException e){ System.out.println(e.toString()); } try{ if (fw!=null) { fw.close(); } }catch(IOException e){ System.out.println(e.toString()); } } } } /* sum: 多个流要分开try。 */
---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
相关文章推荐
- 黑马程序员_毕向东_Java基础视频教程第十八天-IO流---学习笔记
- 黑马程序员_IO流学习第一天
- 黑马程序员--Java基础学习(其他对象和IO流)第十八天
- 黑马程序员_第一天_学会用IO流读写方式拷贝文本文件
- 黑马程序员_java-IO流<八>
- 黑马程序员----JAVASE之IO流操作【字符流】
- 黑马程序员——java基础知识之IO流(二)
- 黑马程序员——Java基础--IO流(2)
- 黑马程序员——IO流3:字节流
- 黑马程序员java基础之io流中的其他流
- 黑马程序员 用io流复制一个文件
- 黑马程序员-java基础-IO流的简单介绍
- 黑马程序员--IO流笔记(二)
- 黑马程序员_java基础知识(四)IO流
- 黑马程序员_温习 IO流三 (个人笔记)摘要(IO流操作规律--File类---递归----Propertise(集合)
- 黑马程序员——java-IO流概念总结
- 黑马程序员-Java基础学习第一天总结
- 黑马程序员---IO流【java】
- 黑马程序员--IO流(Properties、打印流 、文件切割与合并)
- 黑马程序员---第一天学习JAVA的总结,压箱底了,翻出来留个纪念