就是无论注册还是登陆都会抛出红色部分的异常,注册成功后,说注册成功。登陆的时候却抛出异常,到底哪里出错了啊?
//先导入所需要的包。
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
class login
{
public login(){};
public static void main(String args[])
{
ArrayList arr=new ArrayList();//----------------------------------------声明了一个ArrayList类的一个对象。
//System.out.println("1、注册 2、登陆");//-------------------------------提示用户
try//-------------------------------------------------------------------捕获异常
{
FileReader dq=new FileReader("SQL Server.txt");//-------------------读取记事本里面的文字。
BufferedReader bdq=new BufferedReader(dq);//------------------------把读取到的文字放入到缓冲区。
String s=bdq.readLine();//------------------------------------------把缓存区的文字一个一个的读取,并转换成字符串。
while(s!=null)//----------------------------------------------------如果S的东西为空,也就是读取的记事本中的文字为空,则不进行循环。
{
String scf[]=s.split(",");//-----------------------------------将字符串只要有空格的地方都进行拆分,并且以|为拆分符号。
String s1=scf[1],s2=scf[2];//-----------------------------------按照习惯,用户名在前,密码在后即scf[1]中为用户名。scf[2]中为密码。
user u=new user(s1,s2);//---------------------------------------将s1和s2这两个字符串,传参到user类中即String x和String y。
arr.add(u);
}
dq.close();
bdq.close();
}
catch(IOException e1)
{
System.out.println("\n--------------------------------------------------------------------------------\n");
System.out.println("\t\t\t数据库SQL Server.txt文件不存在!\n\t\t\tFile (SQL Server.txt) Not Found!");
System.out.println("\n--------------------------------------------------------------------------------\n");
}
/*catch(Exception e2)
{
System.out.println("\n--------------------------------------------------------------------------------\n");
System.out.println("\t\t\t数据库SQL Server.txt文件不存在!\n\t\t\tFile (SQL Server.txt) Not Found!!!");
System.out.println("\n--------------------------------------------------------------------------------\n");
}*/
catch(Exception e)
{
System.out.println("错误(main)!");
}
if(args[0].equals("1"))
{
zhuce z=new zhuce();
z.zhuce(arr,args[1],args[2]);
}
if(args[0].equals("2"))
{
denglu d=new denglu();
d.denglu(arr,args[1],args[2]);
}
}
}
class zhuce
{
public zhuce(){}
public void zhuce(ArrayList arr,String x,String y)
{
user u=new user(x,y);
arr.add(u);
int size2=arr.size();
try
{
FileWriter xr=new FileWriter("SQL Server.txt",true);
BufferedWriter bxr=new BufferedWriter(xr);
bxr.write(x+","+y);
bxr.newLine();
bxr.flush();
System.out.println("\n--------------------------------------------------------------------------------\n");
System.out.println("\t\t\t\t注册成功!");
System.out.println("\n--------------------------------------------------------------------------------\n");
bxr.close();
}
catch(IOException e1)
{
System.out.println("\n--------------------------------------------------------------------------------\n");
System.out.println("\t\t\t数据库SQL Server.txt文件不存在!\n\t\t\tFile (SQL Server.txt) Not Found!");
System.out.println("\n--------------------------------------------------------------------------------\n");
}
catch(Exception e2)
{
System.out.println("\n--------------------------------------------------------------------------------\n");
System.out.println("\t\t\t数据库SQL Server.txt文件不存在!\n\t\t\tFile (SQL Server.txt) Not Found!!");
System.out.println("\n--------------------------------------------------------------------------------\n");
}
}
}
class denglu
{
public denglu(){}
public void denglu(ArrayList arr,String x,String y)
{
int size2=arr.size();
user temp;
for(int i=1;i<size2;i++)
{
temp=(user)arr.get(i);
if(temp.name.equals(x)&temp.password.equals(y))
{
System.out.println("\n--------------------------------------------------------------------------------\n");
System.out.println("\t\t\t\t登陆成功!欢迎"+x+"的到来");
System.out.println("\n--------------------------------------------------------------------------------\n");
break;
}
else
{
System.out.println("\n--------------------------------------------------------------------------------\n");
System.out.println("\t\t\t\t登录失败,请认真核对用户名/密码");
System.out.println("\n--------------------------------------------------------------------------------\n");
}
}
}
}
class user
{
String name;
String password;
public user(String x,String y)
{
name=x;
password=y;
}
}
//先导入所需要的包。
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
class login
{
public login(){};
public static void main(String args[])
{
ArrayList arr=new ArrayList();//----------------------------------------声明了一个ArrayList类的一个对象。
//System.out.println("1、注册 2、登陆");//-------------------------------提示用户
try//-------------------------------------------------------------------捕获异常
{
FileReader dq=new FileReader("SQL Server.txt");//-------------------读取记事本里面的文字。
BufferedReader bdq=new BufferedReader(dq);//------------------------把读取到的文字放入到缓冲区。
String s=bdq.readLine();//------------------------------------------把缓存区的文字一个一个的读取,并转换成字符串。
while(s!=null)//----------------------------------------------------如果S的东西为空,也就是读取的记事本中的文字为空,则不进行循环。
{
String scf[]=s.split(",");//-----------------------------------将字符串只要有空格的地方都进行拆分,并且以|为拆分符号。
String s1=scf[1],s2=scf[2];//-----------------------------------按照习惯,用户名在前,密码在后即scf[1]中为用户名。scf[2]中为密码。
user u=new user(s1,s2);//---------------------------------------将s1和s2这两个字符串,传参到user类中即String x和String y。
arr.add(u);
}
dq.close();
bdq.close();
}
catch(IOException e1)
{
System.out.println("\n--------------------------------------------------------------------------------\n");
System.out.println("\t\t\t数据库SQL Server.txt文件不存在!\n\t\t\tFile (SQL Server.txt) Not Found!");
System.out.println("\n--------------------------------------------------------------------------------\n");
}
/*catch(Exception e2)
{
System.out.println("\n--------------------------------------------------------------------------------\n");
System.out.println("\t\t\t数据库SQL Server.txt文件不存在!\n\t\t\tFile (SQL Server.txt) Not Found!!!");
System.out.println("\n--------------------------------------------------------------------------------\n");
}*/
catch(Exception e)
{
System.out.println("错误(main)!");
}
if(args[0].equals("1"))
{
zhuce z=new zhuce();
z.zhuce(arr,args[1],args[2]);
}
if(args[0].equals("2"))
{
denglu d=new denglu();
d.denglu(arr,args[1],args[2]);
}
}
}
class zhuce
{
public zhuce(){}
public void zhuce(ArrayList arr,String x,String y)
{
user u=new user(x,y);
arr.add(u);
int size2=arr.size();
try
{
FileWriter xr=new FileWriter("SQL Server.txt",true);
BufferedWriter bxr=new BufferedWriter(xr);
bxr.write(x+","+y);
bxr.newLine();
bxr.flush();
System.out.println("\n--------------------------------------------------------------------------------\n");
System.out.println("\t\t\t\t注册成功!");
System.out.println("\n--------------------------------------------------------------------------------\n");
bxr.close();
}
catch(IOException e1)
{
System.out.println("\n--------------------------------------------------------------------------------\n");
System.out.println("\t\t\t数据库SQL Server.txt文件不存在!\n\t\t\tFile (SQL Server.txt) Not Found!");
System.out.println("\n--------------------------------------------------------------------------------\n");
}
catch(Exception e2)
{
System.out.println("\n--------------------------------------------------------------------------------\n");
System.out.println("\t\t\t数据库SQL Server.txt文件不存在!\n\t\t\tFile (SQL Server.txt) Not Found!!");
System.out.println("\n--------------------------------------------------------------------------------\n");
}
}
}
class denglu
{
public denglu(){}
public void denglu(ArrayList arr,String x,String y)
{
int size2=arr.size();
user temp;
for(int i=1;i<size2;i++)
{
temp=(user)arr.get(i);
if(temp.name.equals(x)&temp.password.equals(y))
{
System.out.println("\n--------------------------------------------------------------------------------\n");
System.out.println("\t\t\t\t登陆成功!欢迎"+x+"的到来");
System.out.println("\n--------------------------------------------------------------------------------\n");
break;
}
else
{
System.out.println("\n--------------------------------------------------------------------------------\n");
System.out.println("\t\t\t\t登录失败,请认真核对用户名/密码");
System.out.println("\n--------------------------------------------------------------------------------\n");
}
}
}
}
class user
{
String name;
String password;
public user(String x,String y)
{
name=x;
password=y;
}
}
{
ex.printStackTrace(); // 你为何不把错误打印出来,你就清楚了!
System.out.println("错误(main)!");
}
要不查找起来太费力了
catch(Exception e)
{
e.printStackTrace(); // 打印错误信息!
System.out.println("错误(main)!");
}
while(s!=null)//----------------------------------------------------如果S的东西为空,也就是读取的记事本中的文字为空,则不进行循环。
{
String scf[]=s.split(",");//-----------------------------------将字符串只要有空格的地方都进行拆分,并且以 ¦为拆分符号。
String s1=scf[1],s2=scf[2];//-----------------------------------按照习惯,用户名在前,密码在后即scf[1]中为用户名。scf[2]中为密码。
user u=new user(s1,s2);//---------------------------------------将s1和s2这两个字符串,传参到user类中即String x和String y。
arr.add(u);
}
这段肯定错了(具体那里自己看)
让你体会下你给我们的感觉
我改了一下您的程式,希望能对您有所启发!
当然,您的程式中有些地方是bug存在的,我没有去改动...import java.io.*;
import java.util.ArrayList;public class Login {
private void printTip(){
//register or login tips
System.out.println("1、注冊 2、登錄");
}
private void getUserInfomation(ArrayList arr) {
try {
FileReader dq = null;
dq = new FileReader("c:/SQL Server.txt");
BufferedReader bdq = new BufferedReader(dq);
String s = bdq.readLine();
while (s != null) {
String scf[] = s.split(",");
String userName = scf[0], passWord = scf[1];
User u = new User(userName, passWord);
arr.add(u);
s = bdq.readLine();
}
dq.close();
bdq.close();
} catch (FileNotFoundException ex) {
HandleInformation.printFileNotFoundException();
} catch (IOException e1) {
}
}
public static void main(String args[]) {
Login log=new Login();
ArrayList arr = new ArrayList();
log.printTip();
log.getUserInfomation(arr);
LoginOrRegisterInfo logInfo=new LoginOrRegisterInfo(args[0],args[1],args[2]);
logInfo.action(arr);
}
}
class LoginOrRegisterInfo {
private String actionType;
private User user;
private static final String REGISTER_TYPE = "1";
private static final String LOGIN_TYPE = "2";
LoginOrRegisterInfo(String actionType, String userNm, String password) {
this.actionType = actionType;
user=new User(userNm,password);
} private void doRegister(ArrayList arr) {
zhuce z = new zhuce();
z.zhuce(arr, user);
} private void doLogin(ArrayList arr) {
denglu d = new denglu();
d.denglu(arr, user);
} void action(ArrayList arr) {
if (actionType.equals(LoginOrRegisterInfo.REGISTER_TYPE)) {
doRegister(arr);
} else if (actionType.equals(LoginOrRegisterInfo.LOGIN_TYPE)) {
doLogin(arr);
}
}
}
class HandleInformation{
static void printFileNotFoundException() {
System.out.println("\n--------------------------------------------------------------------------------\n");
System.out.println("\t\t\t\u6570据\u5E93SQL Server.txt文件不存在!\n\t\t\tFile (SQL Server.txt) Not Found!");
System.out.println("\n--------------------------------------------------------------------------------\n");
} static void printRegisterSuccessInfo() {
System.out.println("\n--------------------------------------------------------------------------------\n");
System.out.println("\t\t\t\t注\u518C成功!");
System.out.println("\n--------------------------------------------------------------------------------\n");
} static void printLoginSuccessInfo(String userName) {
System.out.println("\n--------------------------------------------------------------------------------\n");
System.out.println("\t\t\t\t登\u9646成功!\u6B22迎" + userName + "的到\u6765");
System.out.println("\n--------------------------------------------------------------------------------\n");
} static void printLoginFailureInfo() {
System.out.println("\n--------------------------------------------------------------------------------\n");
System.out.println(
"\t\t\t\t登\u5F55失\u8D25,\u8BF7\u8BA4真核\u5BF9用\u6237名/密\u7801");
System.out.println("\n--------------------------------------------------------------------------------\n");
}
}
class zhuce {
public void zhuce(ArrayList arr, User user) {
arr.add(user);
try {
FileWriter xr = new FileWriter("c:/SQL Server.txt", true);
BufferedWriter bxr = new BufferedWriter(xr);
bxr.write(user.name + "," + user.name);
bxr.newLine();
bxr.flush();
bxr.close();
HandleInformation.printRegisterSuccessInfo();
} catch (FileNotFoundException e1) {
HandleInformation.printFileNotFoundException();
} catch (IOException ex) {
/** @todo Handle this exception */
} }
}
class denglu {
public void denglu(ArrayList arr, User user) {
int size2 = arr.size();
for (int i = 1; i < size2; i++) {
User user_tmp = (User) arr.get(i);
if (user_tmp.name.equals(user.name) && user_tmp.password.equals(user.password)) {
HandleInformation.printLoginSuccessInfo(user.name);
} else {
HandleInformation.printLoginFailureInfo();
}
}
}
}
class User {
String name;
String password;
public User(String userNm, String pwd) {
name = userNm;
password = pwd;
}
}