2014-09-13 2 views
1

SOLVED !!! 손을 작동시켜 주셔서 감사합니다. 고맙습니다!.txt 파일이 있는지 확인하십시오. FileWriter.exists 메서드가 작동하지 않습니다.

사용자 이름과 암호가 입력 된 프로그램을 작성하고 있습니다. 사용자 이름과 암호를 만들 때 이미 존재하는 사용자 이름을 사용자가 입력하면 파일이 있는지 여부를 확인하려고합니다.

.exists 메서드가 작동하지 않으며 알아낼 수 없습니다. 오류가 발생하여 기호를 다시 찾을 수 없습니다. 나는 물건을 바꿨고, 물건을 움직 였고, 하나의 실수로 그것을 잡았다. if 문뿐만 아니라 루프를 사용하여 시도했지만 if를 사용하면 오류 하나만 발생합니다. 도움이된다면 도움이 될 것입니다.

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

[FileWriter] (http://docs.oracle.com)에'exists()'메소드가 없습니다. .com/javase/7/docs/api/index.html? overview-summary.html) !!!! –

+0

도와 주셔서 감사합니다. 위대한 일을 지금. 매우 도움이됩니다. – Rob

답변

3

당신은 여기에 컴파일 오류가 있습니다

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

물론 :

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

변경 그것에 파일 어쨌든 존재하지 않는 경우

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

을, 잘못된 디렉토리를 찾고있을 수 있습니다. 다음을 추가하십시오 :

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

그리고 인쇄 된 경로에서 사용할 수있는 파일인지 확인하십시오.

+0

고마워요. 이제 잘 작동합니다. 고맙습니다. – Rob