⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myresult.java

📁 java实现的全文搜索引擎
💻 JAVA
字号:
/**
 * 
 */
package cn.edu.nju.software.ruse;

import java.io.File;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;

import cn.edu.nju.software.ruse.Tester.Result;

/**
 * @author spring
 * 
 */
public class MyResult {

	private HashSet<File> result;

	private String query;

	private static int start = 0;
	
	public MyResult(String query, HashSet<File> result) {
		this.query = query;
		this.result = result;
	}

	public void printResult() {
		//System.err.println("@MyResult starting to print the result!");
		System.out.println("Search Result:");
		System.out.println(query + ":");
		File f;
		DateFormat df = DateFormat.getDateFormat();
		String dateString;
		if (result.isEmpty()) {
			System.out.println("Can't not find any files!");
		} else {
			Iterator<File> it = result.iterator();
			while (it.hasNext()) {
				f = (File) it.next();
				dateString = df.format(f.lastModified());
				System.out.println("->" + f.getName() + "---" + "ModTime: "
						+ dateString + "---" + "FileSize: " + f.length());
			}
		}
	}

	public List<Result> getResult() {
		//System.err.println("@MyResult starting to get the result!");
		Iterator<File> it = result.iterator();
		File f;
		DateFormat df = DateFormat.getDateFormat();
		Result r;
		List<Result> resultNoOrder = new ArrayList<Result>();
		while (it.hasNext()) {
			f = it.next();

			r = new Result();
			r.fileName = f.getName();
			r.fileSize = (int) f.length();
			r.modTime = df.format(f.lastModified());
			
			resultNoOrder.add(r);
		}
		return resultNoOrder;
	}
	public List<Result> getResultByTime() {
		//System.err.println("@MyResult starting to get the result order by TIME!");
		Iterator<File> it = result.iterator();
		File f;
		DateFormat df = DateFormat.getDateFormat();
		Result r;
		List<Result> resultByTime = new ArrayList<Result>();
		while (it.hasNext()) {
			f = it.next();

			r = new Result();
			r.fileName = f.getName();
			r.fileSize = (int) f.length();
			r.modTime = df.format(f.lastModified());

			if (resultByTime.size() == 0) {
				resultByTime.add(r);
			} else {
				for (int i = 0; i < resultByTime.size() + 1; i++) {
					if(i == resultByTime.size()) {
						resultByTime.add(i, r);
						break;
					}
					if(r.modTime.compareTo(resultByTime.get(i).modTime) == 1) {
						resultByTime.add(i, r);
						break;
					}
				}
			}
		}
		return resultByTime;
	}

	public List<Result> getResultBySize() {
		//System.err.println("@MyResult starting to get the result order by SIZE!");
		Iterator<File> it = result.iterator();
		File f;
		DateFormat df = DateFormat.getDateFormat();
		Result r;
		List<Result> resultBySize = new ArrayList<Result>();
		while (it.hasNext()) {
			f = it.next();

			r = new Result();
			r.fileName = f.getName();
			r.fileSize = (int) f.length();
			r.modTime = df.format(f.lastModified());

			if (resultBySize.size() == 0) {
				resultBySize.add(r);
			} else {
				for (int i = 0; i < resultBySize.size() + 1; i++) {
					if(i == resultBySize.size()) {
						resultBySize.add(i, r);
						break;
					}
					if(r.fileSize > resultBySize.get(i).fileSize) {
						resultBySize.add(i, r);
						break;
					}
				}
			}
		}
		return resultBySize;
	}
	
	public List<Result> getResultByName() {
		//System.err.println("@MyResult starting to get the result order by NAME!");
		Iterator<File> it = result.iterator();
		File f;
		DateFormat df = DateFormat.getDateFormat();
		Result r;
		List<Result> resultByName = new ArrayList<Result>();
		while (it.hasNext()) {
			f = it.next();

			r = new Result();
			r.fileName = f.getName();
			r.fileSize = (int) f.length();
			r.modTime = df.format(f.lastModified());

			if (resultByName.size() == 0) {
				resultByName.add(r);
			} else {
				for (int i = 0; i < resultByName.size() + 1; i++) {
					if(i == resultByName.size()) {
						resultByName.add(i, r);
						break;
					}
					if(r.fileName.compareTo(resultByName.get(i).fileName) == -1) {
						resultByName.add(i, r);
						break;
					}
				}
			}
		}
		return resultByName;
	}
	public void printResultByTime() {
		//System.err.println("@MyResult starting to print the result order by TIME!");
		System.out.println("Search Result:");
		System.out.println(query + ":");
		List<Result> l = getResultByTime();
		Result r;
		if (l.isEmpty()) {
			System.out.println("Can't not find any files!");
		} else {
			for(int i = 0;i < l.size();i++) {
				r = l.get(i);
				System.out.println("->" + r.fileName + "---" + "ModTime: "
						+ r.modTime + "---" + "FileSize: " + r.fileSize);
			}
		}
	
	}
	
	public void printResultBySize() {
		//System.err.println("@MyResult starting to print the result order by SIZE!");
		System.out.println("Search Result:");
		System.out.println(query + ":");
		List<Result> l = getResultBySize();
		Result r;
		if (l.isEmpty()) {
			System.out.println("Can't not find any files!");
		} else {
			for(int i = 0;i < l.size();i++) {
				r = l.get(i);
				System.out.println("->" + r.fileName + "---" + "ModTime: "
						+ r.modTime + "---" + "FileSize: " + r.fileSize);
			}
		}
	}
	
	public void printNext(int num) {
		num += start;
		int size;
		//System.err.println("@MyResult starting to print the result order by NAME!");
		List<Result> l = getResultByName();
		Result r;
		size = l.size();
		if(start >= size) {
			System.out.println("All the Files have been printed!");
			System.out.println("Please Enter \"quit\" to QUIT!");
			return;
		}
		if(num > size) {
			num = size;
		}
		System.out.println("Search Result:");
		System.out.println(query + ":");
		
		if(l.isEmpty()) {
			System.out.println("Can't not find any files!");
		} else {
			for(;start < num;start++) {
				r = l.get(start);
				System.out.println("->" + r.fileName + "---" + "ModTime: "
						+ r.modTime + "---" + "FileSize: " + r.fileSize);
			}
		
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -