2012-02-04 1 views
0
package employee; 

import employee.nidhin.staples; 
import java.util.*; 
import java.io.*; 



public class Employee { 


public static void main(String[] args) 

{ 
    int j=3; 
    staples[] stemp = new staples[j]; 
    String file_name = "d:/personal/11636470/NetBeansProjects/Employee/src/employee/Xanadu.txt"; 


try 

{ 

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 

for (j=0;j<3;j++) 
     { 
      stemp[j] = new staples(); 

      System.out.print("Enter your name : "); 
      stemp[j].setName(reader.readLine()); 

      System.out.println("Enter your age : "); 
      stemp[j].setAge(Integer.parseInt(reader.readLine())); 


     } 


for (j=0;j<3;j++) 
     { 
      System.out.println("Employee number:" + j +" name:"+stemp[j].getName()+" Age:"+stemp[j].getAge()); 

     } 




reader.close(); // VERY IMPORTANT TO CLOSE 

System.out.println("Now writing the file to Xanadu.txt "); 

    PrintWriter out = new PrintWriter(
    new FileWriter("file_name")); 
    for (int i = 0; i < 3; i++) 
    { 
     out.println("Value at: "+ i + " = "+ stemp[i].getName()); 
    } 

    System.out.println("Successfully wrote to file"); 

    out.close(); 


} 
catch(java.io.IOException ex) 
{ 
    System.out.println("Error is " + ex.getMessage()); 
} 



} 
} 

프로그램이 성공적으로 실행되었지만 출력 파일 Xanadu.txt를 열면 아무 것도 볼 수 없습니다. 누군가 나를 인도 할 수 있습니까? Xanadu.txt 파일의 내용은 name과 age라는 두 가지 속성을 가진 stemp 객체의 배열입니다.파일의 내용을 쓸 수 없습니다.

답변

0
PrintWriter out = new PrintWriter(new FileWriter("file_name")); 

올바른 것 "FILE_NAME"를 그 일을 시도 : 나는이 일을해야한다고 생각

PrintWriter out = new PrintWriter(new FileWriter(new File(file_name))); 

을 . FileWriter 생성자는 File을 매개 변수로 사용해야하므로 생각합니다.

+0

고맙습니다. –

0

file_name 주위에 따옴표가 없어야합니다. 이 파일을두면 문자열로 해석되고 작업 디렉토리의 "file_name"파일에 데이터가 기록됩니다.

PrintWriter out = new PrintWriter(
new FileWriter(file_name)); 

... 당신이라는 문자열 전달하는

0

가장 좋은 방법은 확인되고 그것을 간단한 : 코드 아래 시도 :

fos=new File(filepath); 
if(fos.exists() && fos.isFile() && !fos.isDirectory()) 
{ 
    FileWriter fw=new FileWriter(fos); 
    BufferedWriter Bw= new BufferedWriter(fw); 
    Bw.append("i am appending text to the existing file"); 
} 

당신이 먼저 검색 파일을 이동 한 경우에하는 것은 다음 존재하지 않는 생성하고 동일한 데이터를 쓰기 새로운 파일을 생성하여 작성하려는 경우 아래를 사용 :

fos=new File(filepath); 
if(!fos.exists() && !fos.isFile()) 
{ 
    FileWriter fw=new FileWriter(fos); 
    BufferedWriter Bw= new BufferedWriter(fw); 
    Bw.write("i am writing text to the existing file"); 
} 
+0

두 번째 코드 스 니펫에서 한 줄을 놓쳤습니다. fos.createNewFile(); –

+0

여기에 파일을 추가하지 않습니다. 'fos.isFile()'은'! fos.isDirectory()'를 의미합니다; 두 번째 예제에서'if' 문은 중복되어 있습니다; 'new FileWriter'의'append' 매개 변수에'true'를 추가하면 * 양쪽 if 문과 두번째 bck 전체가 중복됩니다. 'fos'는'File' 타입의 변수에 대한 어리석은 이름입니다; 아무도 실제 질문에 답하지 않습니다. – EJP