У меня проблемы с I/O. У меня есть класс SongTextFileProcessor, который должен обрабатывать чтение/запись объекта Song (определенный в классе Song) в/из файла. Вот мой метод записи:Проблема с файлами ввода/вывода Java?
@Override
public void writeSong(String songName, String fileName)
{
String [] songObject = songName.split(", ");
Song s1 = new Song (songObject[0], songObject[1], songObject[2]);
try
{
PrintWriter output = new PrintWriter (new File (fileName));
output.print(s1.printSong());
output.close();
}
catch (Exception e)
{
System.out.println("Exception caught.");
}
}
И мой метод чтения:
@Override
public void readSong(String fileName)
{
try
{
BufferedReader in = new BufferedReader(new FileReader(fileName));
String line = null;
while((line = in.readLine()) != null)
{
System.out.println(line);
}
in.close();
}
catch (Exception e)
{
System.out.println("Exception caught.");
}
}
Однако, когда я пытаюсь вызвать эти методы из класса Test, используя этот код:
String songName = "Maad City, Kendrick Lamar, Hip-Hop";
String fileName = "songs.txt";
writeSong(songName, fileName);
readSong(fileName);
это дает мне ошибка "метод writeSong (String, String) не определен для типа Test". Это меня разочаровывает, потому что я знаком с Java I/O и с Java в целом, и когда оба эти метода вызывают из класса Test, они работают отлично, что означает, что проблема должна находиться в процессе передачи аргументов метод в SongTextFileProcessor. Есть идеи?
Вот класс песни:
public class Song
{
private String title, artist, genre;
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = title;
}
public String getArtist()
{
return artist;
}
public void setArtist(String artist)
{
this.artist = artist;
}
public String getGenre()
{
return genre;
}
public void setGenre(String genre)
{
this.genre = genre;
}
public Song(String title, String artist, String genre)
{
this.title = title;
this.artist = artist;
this.genre = genre;
}
public String printSong()
{
return (getTitle() + " by " + getArtist() + " is a " + getGenre() + " song.");
}
}
The readSong and writeSong methods are the only methods in the SongTextFileProcessor class, and both of those methods are defined by Interfaces. And i've shown all the code I have in the Test class.
обеспечивает год песня класса –
U нужно показать весь код, чтобы ваш вопрос становится более ясным. – a874
В каком классе находится ваш 'writeSong()' и откуда вы его вызываете? Можете ли вы предоставить эти классы? –