我的问题出在以下代码中。
问题是当我调用alreadyUser(String username)
如果文件在系统上不存在时,它会给出 FileNotFoundException。我想克服这个错误,但我想不通。
因此,在应用程序启动时,系统会要求输入 unname 并通过。然后调用 alreadyUser 方法,如果文件尚未创建,它会给出错误(例如,我手动创建它)。下次我启动程序时,如果文件已经存在,则不能用新文件切换,因为旧数据将消失 :)
public final class TinyBase {
final static String FILENAME = "KEYVALUES.txt";
static FileOutputStream fos = null;
static FileInputStream fis = null;
protected static void createUser(String username, String password)
protected static boolean loadUser(String username, String password)
protected static boolean alreadyUser(String username) {
String encode = new String(username);
String compare = null;
boolean flag = false; // true - ok no such user ; false - fail username
// already in use
try {
/* ERROR IS HERE */
fis = new FileInputStream(FILENAME);
/* ERROR IS HERE */
byte[] buffer = new byte[fis.available()];
while (fis.read(buffer) != -1) {
compare = new String(buffer);
if (compare.contains(encode)) {
flag = true;
break;
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fis.close();
return flag;
} catch (IOException e) {
e.printStackTrace();
}
}
return false;
}
}