2014-09-13 111 views
1

已解决!!!谢谢你们的手让它工作。欣赏它!检查是否存在.txt文件。 FileWriter.exists方法不起作用

我正在写一个有用户名和密码输入的程序。我正在尝试检查用户是否存在文件,如果用户在创建用户名和密码时放入已存在的用户名。

.exists方法不起作用,我无法弄清楚。错误找不到符号回来。我已经改变了一些事情,将事情转移到了一个错误。尝试使用循环以及如果语句,但使用如果只让我只有一个错误。任何帮助将是伟大的。

import java.util.Scanner; 
import java.io.*; 

class UserData 
{ 
    public static void main (String[] args) throws IOException 
    { 
    Scanner kb = new Scanner(System.in); 

    System.out.println("Do you have an account? Yes or No: "); 
    String answer = kb.next().trim(); 

    if ((answer.startsWith("N")) || (answer.startsWith("n"))) 
    { 

System.out.println("Create user name: "); 
String user = kb.next().trim(); 

String fileName = user + ".txt"; 
FileWriter userData = new FileWriter(fileName); 

if (userData.exists()) 
{ 
    System.out.println("User already exists"); 
    System.out.println("Create user name: "); 
    user = kb.next().trim(); 

    fileName = user + ".txt"; 
    userData = new FileWriter(fileName); 
} 

System.out.println("Create Password: "); 
String ps = kb.next().trim(); 

userData.write(user + " "); 
userData.write(ps); 
userData.close(); 


    } 

    else if ((answer.startsWith("Y")) || (answer.startsWith("y"))) 
    { 
System.out.println("Enter user name: "); 
String user = kb.next().trim(); 

System.out.println("Enter Password: "); 
String ps = kb.next().trim(); 

String fileName = user + ".txt"; 
Scanner inFile = new Scanner(new File(fileName)); 

String userName = inFile.next(); 
String password = inFile.next(); 

//  If ((userName != user) || (password != ps)) 
//  { 
//  System.out.println("User Not Found"); 
//  System.out.println("Enter user name: "); 
//  String user = kb.next().trim(); 
// 
//  System.out.println("Enter Password: "); 
//  String ps = kb.next().trim(); 
// 
//  String fileName = user + ".txt"; 
//  Scanner inFile = new Scanner(new File(fileName)); 
// 
//  String userName = inFile.next(); 
//  String password = inFile.next(); 
//  } 
//  else 
//  { 
    System.out.println("User Found"); 
//  } 
} 





}} 
+0

尝试使用try-catch打开文件,如果捕获到异常,则该文件不存在,否则它存在 – Nabin 2014-09-13 04:34:58

+1

在[FileWriter](http://docs.oracle.com)中没有看到存在() .com/javase/7/docs/api/index.html?overview-summary.html)!!!! – 2014-09-13 04:37:51

+0

谢谢你们的帮助。现在工作很好。很有帮助。 – Rob 2014-09-13 04:52:05

回答

3

你有编译错误的位置:

FileWriter userData = new FileWriter(fileName); 
if (userData.exists()) 

将其更改为:

File userDataFile = new File(fileName); 
if (userDataFile.exists()) 

当然:

FileWriter userData = new FileWriter(userDataFile); 
userData.write(user + " "); 
userData.write(ps); 
userData.close(); 

如果文件不存在无论如何,你可能正在寻找一个错误的目录。尝试添加:

System.out.println(new File(fileName).getAbsolutePath()); 

并检查自己是否在打印路径上可用的文件。

+0

谢谢你。现在工作正常。欣赏它。 – Rob 2014-09-13 04:52:40