2012-04-25 2 views
1

первый раз здесь.«Конструктор FileReader в классе filereader.FileReader не может применяться к данным типам»

Я в процессе написания программы Java, которая принимает входной текстовый файл, считывает содержимое, а затем печатает их на экране, а также создает выходной файл с содержимым. Я создал необходимых авторов, но когда я пытаюсь использовать BufferedReader readername = new BufferedReader(new FileReader(inFile));, он дает мне ошибку в заголовке.

Любые идеи, что вызывает это?

Вот код.

public class FileReader 
{ 
    public static void main(String[] args) throws IOException 
    { 
     try 
     { 
     File inFile = new File("inputText.txt"); 
     BufferedReader reader = new BufferedReader(new FileReader(inFile)); 
     String line = null; 
     BufferedWriter writer = new BufferedWriter(new FileWriter("Contents.txt")); 

     while ((line=reader.readLine()) != null) 
        { 
         writer.write(line); 
         System.out.println("File 'Contents.txt' successfully written"); 
         System.out.println(line); 
        } 
     } 
     catch (IOException e) 
     { 
      System.out.println(e); 
     } 
    } 
} 

ответ

5

Используйте полное имя класса java.io.FileReader, так как у вас есть класс уже называется FileReader при вызове BufferedReader, например, так:

BufferedReader reader = new BufferedReader(new java.io.FileReader(inFile)); 

Без полной квалификации вашего FileReader (или указание на импорт), компилятор будет использовать ваш объявленный FileReader.

+0

Спасибо! Это решило проблему. –

+0

@ Ян Джонсон, рад помочь. Не забудьте принять ответ, который помог, нажав на галочку под номером ответа. –

+0

Другая проблема, когда я пытаюсь закрыть читателя и писателя под уловкой, он говорит, что не может найти символ, хотя я объявил его дальше. –

0

Проблема заключается в том, что ваше имя класса - FileReader, и вы хотите использовать java.io.FileReader, поэтому компилятор запутан и вместо java.io.FileReader он предполагает, что это ваш класс. В основном ваш ClassName затеняет имя из пакета java.io.

Переименовать класс к чему-то еще, как MyFileReader или использовать полностью квалифицированное имени java.io.FileReader