}
}
补充
1、用命令行带参的方式实现dir命令的功能,不带参数表示查询当前目录,带参
数表示查询指定的目录,如dir c:\\ ,并支持dir *.java的文件后缀过滤功能。 答:
Dir.java
import java.io.*;
import java.util.*; import java.text.*; public class Dir {
public void GoBack(){
this.dir(System.getProperty(\ }
public void GoBack(String userdir) { if(userdir.equals(\
this.dir(System.getProperty(\ } else {
this.dir(userdir,1); } }
public void dir(String str,int m) { String dir=null; int n;
double Byte=0; dir=str; n=m;
File f=new File(dir); if (!f.exists()) {
System.out.println(\文件或目录不存在!\ System.exit(0); }
while (f.isDirectory()) { File[] dire=f.listFiles();
for (int i=0; i SimpleDateFormat formatter=new SimpleDateFormat (\h:m\ String date=formatter.format(new Date(dire[i].lastModified())) ; if(m==0){ if(dire[i].getName().endsWith(\ System.out.printf(\\\n\ } } else { if(dire[i].isFile()){ System.out.printf(\\\n\ } else { System.out.printf(\\\n\ } } } break; } } public static void main(String[] args) throws IOException{ Dir test=new Dir(); String userdir=System.getProperty(\ System.out.print(userdir+\ System.out.print(\ //if(new InputStreamReader(System.in).read()==13){//显示当前目录 // test.GoBack(); //} Scanner scanner=new Scanner(System.in); userdir=scanner.next(); test.GoBack(userdir); } } 2、给当前的类所在的java源文件添加行号,拷贝到另一个文件temp.txt。 答: Temp.java import java.io.*; public class Temp { public static void main(String[] args) { File file = new File(\ try{ File tempFile = new File(\ FileReader inOne = new FileReader(file); BufferedReader inTwo = new BufferedReader(inOne ); FileWriter tofile = new FileWriter(tempFile); BufferedWriter out = new BufferedWriter(tofile); int i = 0; String s = inTwo.readLine(); while (s != null) { i++; out.write(i + \ out.newLine(); s = inTwo.readLine(); } inOne.close(); inTwo.close(); out.flush(); out.close(); tofile.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } System.out.println(\已给当前的类所在的java源文件添加行号,拷贝到temp.txt\ } } 3、编写一个图书类(Book),要求: ① 每本图书数据包括图书ISBN号、图书名、单价,即在类Book中要声明存放这3个数据的成员变量。 ② 定义1个构造方法,此构造方法能将当前图书的ISBN号、图书名、单价赋成用户提供的真实数据值,而不是系统默认值。 ③ 能用图书ISBN号作为关键属性来判断两本图书是否相等,即在类Book中要重新编写从父类Object继承得到的public boolean equals(Object obj)方法。 ④能用图书ISBN号作为关键属性来判断两本图书的大小(即先后顺序),即让类Book实现java.lang.Comparable接口,并实现接口Comparable中的public int compareTo(T o)方法。 ⑤ 能用打印图书对象的方式将当前图书的ISBN号、图书名、单价在一行打印,并且每个数据间用Tab间作为分隔。即在类Book中要重新编写从父类Object继承得到的public String toString()方法。 编写上面图书类的测试类(Test.java),要求: ① 编写代码创建封装以下两个图书数据的图书对象,并将这两个对象打印 ISBN 978-7-115-16922-8 978-7-900680-38-9 图书名 Java 程序设计与问题解决 东软Java软件工程师实例参考手册 单价 49.00 58.00 ② 编写代码判断这两个图书是否相等,并根据方法返回结果来判断,打印这两本图书是否相等 ③ 编写代码判断这两个图书的大小,并根据方法返回结果来判断,打印这第一本图书是否大于第二本图书 ④ 最终控制台的输出结果要求如下: 图书1: 978-7-115-16922-8 Java 程序设计与问题解决 49.00 图书2: 978-7-900680-38-9 东软Java软件工程师实例参考手册 58.00 图书1等于图书2:不相等 图书1大于图书2:大于 答: Book.java import java.lang.Comparable; public class Book implements Comparable public Book(String isbn,String name,double price){ this.isbn=isbn; this.name=name; this.price=price; } public boolean equals(Object obj){ return isbn.equals(obj); } public int compareTo(Book o){ return isbn.compareTo(o.isbn); } public String toString(){ return isbn+\ } } Test.java public class Test{ public static void main(String args[]){ Book book1=new Book(\程序设计与问题解决\ Book book2=new Book(\东软Java软件工程师实例参考手册\ System.out.println(\图书1:\\n\ System.out.println(\图书2:\\n\ System.out.print(\图书1等于图书2:\ if(book1.equals(book2)==true) System.out.println(\相等\ else System.out.println(\不相等\ System.out.print(\图书1大于图书2:\ if(book1.compareTo(book2)<0) System.out.println(\大于\ else System.out.println(\小于\ } }