Witam, pisze program dzialajacy na zasadzie bazy danych w javie. Znaczy sie wpisuje sie do niego tytul ksiazki, autora, rok wydania i potem klikamy na przycisk dodaj i zapisuje sie to do pliku tekstowego o nazwie "pierwszy.txt", gdy klikamy na przycisk szukaj pojawia sie Inputbox gdzie po wpisaniu tylko tytulu wyswietla sie reszta informacji czyli autor, rok wydania itp. . Problem jest jednak ze jak wpisze ręcznie do pliku "pierwszy.txt" tytul ksiazki i autora to po kliknieciu na przycisk szukaj i wpisaniu tytulu te informacje sie wyswietlaja, jednak gdy wpisze najpierw w programie te dane i klikne dodaj, to potem mimo iz w pliku tekstowym tytul ksiazki i autor sie pojawia, jednak gdy klikne szukaj jest tak jakby ten plik tekstowy byl pusty. Probowalam to naprawic tak zeby stworzyc dwa pliki tekstowe "pierwzy.txt" i "drugi.txt" i zeby po kliknieciu dodaj najpierw sie zapisywalo do pliku pierwszy.txt a potem przekopiowywalo do pliku drugi.tx i po kliknieciu szukaj juz operowaloby sie na tym pliku drugi.txt jdenak to nic nie daje.
JButton przycisk11 = new JButton("Szukaj");
przycisk11.setSize(80,50);
przycisk11.setLocation(370,320);
add(przycisk11);
przycisk11.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) {
HashMap<String, String> map = new HashMap<String, String>();
Scanner scan = null;
try {
scan = new Scanner(new File("drugi.txt"));
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
String tytul;
String informacje;
while(scan.hasNextLine()){
tytul = scan.nextLine();
informacje = scan.nextLine();
map.put(tytul, informacje);
}
while((tytul = JOptionPane.showInputDialog("Wpisz tytuł książki")) != null){
informacje = map.get(tytul);
if ( informacje == null) informacje = "Nie ma książki w bazie danych";
JOptionPane.showMessageDialog(null, "Tytuł : " + tytul + '\n' + "" + informacje);
}
}
JButton przycisk10 = new JButton("Dodaj");
przycisk10.setSize(80,50);
przycisk10.setLocation(120,320);
add(przycisk10);
przycisk10.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e) {
String pole = pole_t.getText();
String pole1 = pole_s.getText();
String pole2 = pole_u.getText();
String pole3 = pole_w.getText();
String wynik = pole + " \r\n" + pole1 + " " + pole2 + " " + pole3 + " \r\n";
try {
Scanner scan = new Scanner(new File("pierwszy.txt"));
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
FileWriter fileWritter = null;
try {
fileWritter = new FileWriter("pierwszy.txt",true);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
try {
bufferWritter.write(wynik);
bufferWritter.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
bufferWritter.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
InputStream inStream = null;
OutputStream outStream = null;
try{
File afile =new File("pierwszy.txt");
File bfile =new File("drugi.txt");
inStream = new FileInputStream(afile);
outStream = new FileOutputStream(bfile);
byte[] buffer = new byte[1024];
int length;
//copy the file content in bytes
while ((length = inStream.read(buffer)) > 0){
outStream.write(buffer, 0, length);
}
inStream.close();
outStream.close();
System.out.println("File is copied successful!");
}catch(IOException e1){
e1.printStackTrace();
}
}
private void copyFileUsingStream(File source, File dest) {
// TODO Auto-generated method stub
}
});