2014-09-13 1 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

+1

Не видел метод 'exists()' в [FileWriter] (http://docs.oracle .com/javase/7/docs/api/index.html? overview-summary.html) !!!! –

+0

Спасибо, ребята, за помощь. Теперь здорово. Очень полезно. – Rob

ответ

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

Смежные вопросы