2017-11-13 1 views
-2

텍스트 파일을 읽고 쓸 수있는 두 개의 개체를 만들려고합니다. 문제는 프로그램을 실행할 때 발생합니다. 텍스트 파일이 지워집니다. 왜 이런 일이 일어나고 어떻게 해결할 수 있습니까?Java를 사용하여 텍스트 파일을 읽으려고하는데 프로그램이 실행될 때 지워집니다.

CODE : 파일을 텍스트로 작성

import java.io.BufferedReader; 
    import java.io.FileNotFoundException; 
    import java.io.FileReader; 
    import java.io.IOException; 

    public class Reader { 

     public static String fromFile; 
     public static FileReader fr; 
     public static BufferedReader file; 

     public Reader(String fileName) throws IOException, FileNotFoundException { 
      fr = new FileReader(fileName); 
      file = new BufferedReader(fr); 
     } 

     public void readFile() throws IOException { 
      while((fromFile = file.readLine()) != null) { 
       System.out.println(fromFile); 
      } 
     } 

    } 

개체 : : 텍스트 파일을 읽을 수

객체 리더의 생성을

import java.io.BufferedWriter; 
    import java.io.FileNotFoundException; 
    import java.io.FileWriter; 
    import java.io.IOException; 

    public class Writer { 

     public static FileWriter fw; 
     public static BufferedWriter file; 

     public Writer(String fileName) throws IOException, FileNotFoundException { 
      fw = new FileWriter(fileName); 
      file = new BufferedWriter(fw); 
     } 

    } 

홈페이지 방법과 작가의 객체 및 사용 텍스트 파일을 읽을 수있는 리더 :

import java.io.IOException; 

    public class Main { 

     public static Writer toFile; 
     public static Reader fromFile; 
     public static String fileName = "test123.txt"; 

     public static void main(String[] args) throws IOException { 

      toFile = new Writer(fileName); 
      fromFile = new Reader(fileName); 

      fromFile.readFile(); 
     } 

    } 
+1

당신은 읽고 좋은 생각이 결코 동일한 파일에 쓰기를 시도하는 것 같다,하지만 당신은'Writer'이 파일의 내용을 쉬고, 그렇지 않으면 수행하도록 지시하지 않는 때문에 - 이것이 기본적으로하는 일입니다. 아마도 [FileWriter 용 JavaDocs] (https://docs.oracle.com/javase/8/docs/api/java/io/FileWriter.html)를 읽고 어떤 옵션을 사용할 수 있는지보아야합니다. it – MadProgrammer

+0

텍스트 파일은 텍스트 파일로 작성되고 프로그램이 실행될 때 아무 것도 콘솔에 출력되지 않습니다. 가서 텍스트 파일을 다시 볼 때 – Reddish

+0

@ Aominè 그들은 파일에 데이터를 추가 할 것인지를 지정하지 않고 쓰기 모드로 파일을 여는 것을 의미합니다 ... – MadProgrammer

답변

1

이것은 제 제안입니다.

import java.io.*; 

    public class Main { 

     public static void main(String[] args) throws IOException { 
      public static String fileName = "test123.txt"; 
      Read rd=new Read(); 
      rd.reader(filename); 
     } 

    } 

public class Read 
{ 
     public void reader(String filename) 
     { 
     FileReader fr=new FileReader(filename); 
     BufferedReader bfr=new BufferedWriter (fr); 
     String text=""; 
     String line=reader.readLine(); 
     while(line!=null) 
     { 
      text+=line; 
      line=reader.readLine(); 
     } 
     System.out.println(text); 

     } 
    fr.close(); 
    bfr.close(); 
} 
관련 문제