JAVA——LineNumberReader
2016-05-29 13:13
591 查看
import java.io.*; class LineNumberReaderDemo { public static void main(String[] args)throws IOException { FileReader fr = new FileReader("FileWriterDemo.java"); LineNumberReader lnr = new LineNumberReader(fr); String line = null; lnr.setLineNumber(10); while((line=lnr.readLine())!=null) { System.out.println(lnr.getLineNumber()+":"+line); } lnr.close(); } }
因为上面设置了行号为10;所以从11开始。
就LineNumberReader原理,用代码实现它的运行机理。
import java.io.*; class MyLineNumberReader { private Reader r; private int linNumber; MyLineNumberReader(Reader r) { this.r = r; } public String myReadLine() throws IOException { linNumber++; StringBuilder sb = new StringBuilder(); int ch = 0; while((ch=r.read())!=-1) { if(ch=='\r') continue; if(ch=='\n') return sb.toString(); else sb.append((char)ch); } if(sb.length()!=0) return sb.toString(); return null; } public void setLineNumber(int lineNumber) { this.linNumber = lineNumber; } public int getLineNumber() { return linNumber; } public void myClose()throws IOException { r.close(); } } class MyLineNumberDemo { public static void main(String[] args)throws IOException { FileReader fr = new FileReader("DateDeme.java"); MyLineNumberReader mylnr = new MyLineNumberReader(fr); mylnr.setLineNumber(10); String line = null; while((line=mylnr.myReadLine())!=null) { System.out.println(mylnr.getLineNumber()+"::"+line); } mylnr.myClose(); } }
运行结果如下:
11::import java.util.*; 12::import java.text.*; 13::class DateDeme 14::{ 15:: public static void main(String[] args) 16:: { 17:: Date d = new Date(); 18:: //这样打印格式看不懂。 19:: // System.out.println(d); 20:: //将模式封装到simpleDateformat对象中 21:: SimpleDateFormat sdf = new SimpleDateFormat("yyy年MM月dd日E hh:mm:ss"); 22:: //调用format方法让模式格式化指定Date对象 23:: String time = sdf.format(d); 24:: System.out.println("time ="+time); //time =2016年05月21日星期六 10:58:08 25:: 26:: 27:: 28:: System.out.println("----------"); 29:: long l = System.currentTimeMillis(); 30:: Date d1 = new Date(l); 31:: System.out.println("d1:"+d1); //d1:Sat May 21 10:58:08 CST 2016 32:: 33:: } 34::}
相关文章推荐
- Java - PAT - 1013. 数素数 (20) 注意超时
- SpringMVC学习笔记(3):绑定数据(1)
- Java开发工具简介
- java入门之GC的算法与种类(4)
- JAVA第八次作业
- Spring学习(十一)Bean生命周期介绍
- Java中的equals和强制类型转换
- Spring学习(九)资源访问接口Resource
- java 字节流与字符流的区别(转载)
- 运行kettle时出现couldn't create java virtual machine
- Spring学习(八)Spring IoC容器原理分析
- JAVA反射机制深入学习(三)ClassLoader类装载器介绍
- Java异常处理机制【转载】
- Java void关键字
- java方法suspend\resume\yield\setPriority
- Struts2-服务端验证
- 对LIST集合中的Map集合做排序
- RxJava(二) map操作符用法详解
- RxJava map操作符用法详解
- java线程停止的方法