📄 littleprogram.java
字号:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.StringTokenizer;
/*
* Created on 2006-4-22
*/
/**
*
* ѧɼϵͳ
* ͨѧŲ,,ɾ
*
*/
public class LittleProgram
{
static boolean isDelete = true;
static boolean isFind = true;
//,↑ʼ
public static void main(String [] args) throws IOException,NumberNotFoundException
{
int choice=-1;
do{
LittleProgram lp = new LittleProgram();
System.out.println();
System.out.println("\t####################################");
System.out.println();
System.out.println("\t\t Javaѧɼϵͳ1.1");
System.out.println("\t\tѧŲ,,ɾ");
System.out.println();
System.out.println("\t####################################");
System.out.print("1.:"+ "2.:"+"3.ɾ:"+"4.:"+"5.ȫӡĻ"+"6.ѳɼѧ"+"7."+"8.ͳѼ¼ɼѧ"+"9."+"0.˳." +":");
//ն˽ѡ;
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String inputLine = in.readLine();
choice= Integer.valueOf(inputLine).intValue();
switch(choice)
{
case 1: {//1.
String str = lp.inputData();
lp.addData(str);
System.out.println("ݳɹ.");
timeOut(1);
}break;
case 2: {//2.
long find = 0;
System.out.print("Ҫҵѧѧ:");
BufferedReader inn = new BufferedReader(new InputStreamReader(System.in));
String inputLi = inn.readLine();
find = Integer.valueOf(inputLi).longValue();
lp.findData(find);
timeOut(2);
}break;
case 3: {//3.ɾ
long deleteNumber = 0;
System.out.print("ɾͬѧѧ:");
BufferedReader bf = new BufferedReader (new InputStreamReader(System.in));
String inputL = bf.readLine();
deleteNumber = Integer.valueOf(inputL).longValue();
lp.deleteData(deleteNumber);
if(isDelete)
System.out.println("ɾݳɹ!");
timeOut(1);
}break;
case 4: {
lp.clearData();//4.
timeOut(1);
}break;
case 5: {
print();//5.ȫӡĻ
timeOut(2);
}break;
case 6: {
lp.numSort();//6.ѳɼѧ
System.out.println("ѧŴСɹ!"+":");
print();
timeOut(2);
}break;
case 7: {
lp.rewrite();//7.
timeOut(2);
}break;
case 8: {
int count = lp.count();
System.out.println(""+count+"ѧѾ¼.");
timeOut(2);
}break;
case 9: {
System.out.print("\t\tHEF"+"\t\t");
timeOut(4);
}break;
}
System.out.println("Bye! ^-^");
System.exit(0);
}while (choice != 0);
}
//ն˽ݵķ,ַ
public String inputData() throws IOException,NumberFormatException
{
System.out.print(" :ѧ Ա ɼ" + "ÿÿո:");
String all = "";
try{
//ն˽
BufferedReader in = new BufferedReader (new InputStreamReader(System.in));
String inputLine = in.readLine();
//յÿո,ȡÿַ
StringTokenizer str = new StringTokenizer(inputLine," ");
long num = Integer.valueOf(str.nextToken()).longValue();//ѧ
String name = (String)str.nextToken(); //
String sex = (String)str.nextToken(); //Ա
double mark = Integer.valueOf(str.nextToken()).doubleValue();//
all = String.valueOf(num) +" , "+ name +" , "+ sex +" , "+ String.valueOf(mark);//е" , "ȻŽַall
}catch (IOException e){}
catch (NumberFormatException e){}
return all;//ַall
}
//ݵķ
public void addData(String str) throws IOException
{
String s1 ="",s2="" ,s3= "";
File file = new File("data.txt");
if (file.exists())//ļdata.txt
{
try{
BufferedReader in = new BufferedReader(new FileReader("data.txt"));
while ((s1=in.readLine())!=null)
s2+=s1+"";//ļеÿȫŽһַs2
s2+=str+""; //ٰs2βstrŽs2
//ַs2Ҳԭļ+βstr(һ)дdata.txtԭ
BufferedReader in2 = new BufferedReader(new StringReader(s2));
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("data.txt")));
while ((s3=in2.readLine())!= null)
{
out.println(s3);
}
out.close();
//System.out.println("write data true.");
}catch (IOException e){}
}else{
System.err.println("File \"data\" Missing!");
}
}
//data.txtݵķ
public void clearData() throws IOException
{
File file = new File("data.txt");
if(file.exists())//ļ
{
try{
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(file)));
out.print("");//ļdata.txtдһַ,ԭ
out.close(); //رļ
System.out.println("clear data true!");
}catch(IOException e){}
}else{
System.err.println("File \"data\" Missing!");
}
}
//ɾij
public void deleteData(long deleteNumber) throws IOException,FileNotFoundException
{
isDelete = true;
try{
DataMap mp = new DataMap();//һԼд
long j=0;
String s1="",s2="",s3="";
BufferedReader in = new BufferedReader(new FileReader("data.txt"));
while ((s1=in.readLine())!=null)
{
j=numberTokenizer(s1);
mp.put(j,s1);
}
try{
if(mp.containsKey( String.valueOf(deleteNumber).toString()))
{
mp.remove(deleteNumber);
}else
throw new NumberNotFoundException();
Collection c = mp.values();
Iterator iter = c.iterator();
while(iter.hasNext())
{
s1 = (String)iter.next();
s3 +=s1+"";
}
BufferedReader in2 = new BufferedReader(new StringReader(s3));
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("data.txt")));
//System.out.println("delete No"+deleteNumber);
while( (s1 = in2.readLine())!=null)
{
out.println(s1);
}
out.close();
}catch (NumberNotFoundException e)
{
isDelete = false;
System.out.println(deleteNumber+" no found :(");
}
}catch(IOException e){}
}
public long numberTokenizer(String s) throws IOException
{
StringTokenizer st = new StringTokenizer(s," ");
return Integer.valueOf((st.nextToken())).longValue();
}
//
public void findData(long find) throws IOException,NumberNotFoundException
{
isFind = true;
String s = "",findString ="";
long i;
DataMap dm = new DataMap();
BufferedReader in = new BufferedReader(new FileReader("data.txt"));
while ((s=in.readLine())!=null)
{
i=numberTokenizer(s);
dm.put(i,s);
}
//in.close();
try{
if(dm.containsKey( String.valueOf(find).toString()))
{
findString = dm.get(find);
System.out.println("ѧ"+find+"ѧ:");
System.out.println(findString);
}else
throw new NumberNotFoundException();
}catch (NumberNotFoundException e){
System.out.println(find+" no found :(");
isFind = false;
}
}
//ȡıļݴӡն˵ķ
public static void print() throws IOException
{
try{
BufferedReader in = new BufferedReader(new FileReader("data.txt"));
String read = "";
while ((read = in.readLine())!=null)
System.out.println(read);
}catch(IOException e){}
}
//ͣٶʱһȫԲҪ
public static void timeOut(double sec)
{
double seconds = sec;
long t = System.currentTimeMillis()+(int)(seconds*1000);
while ((System.currentTimeMillis())) ;
}
//ѧ
public void numSort() throws IOException
{
long i = 0;
String s = "";
try{
DataArrayList dal = new DataArrayList();
BufferedReader in = new BufferedReader(new FileReader("data.txt"));
while ((s=in.readLine())!=null)
{
i=numberTokenizer(s);
dal.add(i);
}
Collections.sort(dal);
DataMap dm = new DataMap();
BufferedReader in2 = new BufferedReader(new FileReader("data.txt"));
while ((s=in2.readLine())!=null)
{
i=numberTokenizer(s);
dm.put(i,s);
}
PrintWriter out = new PrintWriter (new BufferedWriter(new FileWriter("data.txt")));
Iterator it = dal.iterator();
long temp = 0;
String tempStr = "";
while (it.hasNext())
{
temp = Integer.valueOf((String)it.next()).longValue();
tempStr = dm.get(temp);
out.println(tempStr);
}
out.close();
}catch(IOException e){}
}
public void rewrite() throws IOException,NumberNotFoundException
{
try{
System.out.print("Ҫĵѧѧ:");
BufferedReader in = new BufferedReader (new InputStreamReader(System.in));
String inputLine = in.readLine();
long num = Integer.valueOf(inputLine).longValue();
findData(num);
if(isFind)
{
deleteData(num);
System.out.print("ѧ:");
String str = inputData();
addData(str);
System.out.println("rewrite true!");
}
}catch(IOException e){}
catch(NumberNotFoundException e){}
}
public int count() throws IOException
{
DataArrayList dal = new DataArrayList();
try{
String s = "";
long i =0;
BufferedReader in = new BufferedReader(new FileReader("data.txt"));
while ((s=in.readLine())!=null)
{
i=numberTokenizer(s);
dal.add(i);
}
}catch(IOException e){}
return dal.size();
}
class DataMap extends HashMap//һ洢ݵMap
{
//ѧźݷŽMapԺһѧ(key)Ӧһ˵(value)
public void put(long i,String str)
{
put(String.valueOf(i).toString(),str);
}
public void remove(long i)//ѧ,Ȼɾѧ(key)Ӧ(value)
{
remove(String.valueOf(i).toString().toString());
}
public String get(long i)//һѧ,Ȼ
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -