Bu yüzden eğlence için temel bir Adres defteri uygulaması oluşturuyorum. Kullanıcının Address Book.txt dosyasına girilen mevcut bilgileri kaydetmek için (Kitap ekle) düğmesine basabilmesini istiyorum. Sorun şu anda kullandığım kod tüm dosya içeriğini siliyor ve sadece yeni girdiye ekler. İçeriği silmeden dosyaya eklemenin iyi bir yolu ne olurdu yoksa bu mümkün değilse, tüm dosya verilerini saklamak ve Adres Defteri.txt dosyasına yeniden girmek için iyi bir yol nedir? İşte İçeriği değiştirmeden nasıl dosya ekleyebilirim (JAVA)?
erişebilir ve dosya Adres book.txt yazmak için bir yol oluşturunimport javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.util.*;
public class AddressBook extends JFrame{
//Create fields
public ArrayList<String> data;
public JTextField name,address,number;
private JButton addStuff;
//Create the constructor for the Phone book
public AddressBook(){
//set the layout
setLayout(new FlowLayout());
//Create instances of fields and give properties
name = new JTextField("(Name)");
name.setPreferredSize(new Dimension(200,20));
address = new JTextField("(Address)");
address.setPreferredSize(new Dimension(290,20));
number = new JTextField("(Number)");
number.setPreferredSize(new Dimension(100,20));
//create a save button and add functionality
addStuff = new JButton("Add to Book");
addStuff.addActionListener(
new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
kodum, ama ben
PrintWriter writer;
String x = String.format("Name: %s Number: %s Address: %s ", name.getText(),number.getText(),address.getText());
String name = "Address Book.txt";
try {
writer = new PrintWriter(name, "UTF-8");
writer.println(x);
//Go to new line to write info to
writer.println("");
writer.close();
}
catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
);
add(name);
add(address);
add(number);
add(addStuff);
}
I yaptığınızda tüm verileri silme gibi görünüyor metin dosyasındaki tüm maddeleri okumak ve bunu bir String ArrayList'e (veri) kaydetmek için kullanacaktı, ancak bilgiler dosyada tuhaf yazılmış çıktı. senin PrintWriter
yerine kesilmiş kısmının sonuna eklenecek bir FileInputStream
kümesinden oluşturma
private class ReadFile {
private Scanner x;
public void openFile(){
try{
x = new Scanner(new File("Address Book.txt"));
}
catch(Exception e)
{
System.out.println("File not found or something");
}
}
public void readFile(){
while(x.hasNext()){
String a = x.next();
data.add(a);
}
}
}
}
Mükemmel çalıştı çok teşekkür ederim çok!!! –