Şimdi Ara

java da object olarak dosya okuma, yazma ve düzenleme

Koronavirüs Özel
Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
2
Cevap
0
Favori
161
Tıklama
Tüm Forumlar >> Web Tasarım - Programlama >> Yazılım Geliştirme >> Java >> java da object olarak dosya okuma, yazma ve düzenleme
Sayfaya Git:
Sayfa:
1
Giriş
Mesaj
  • Yarbay
    2167 Mesaj
    selam arkadaşlar,
    javada object tipinde dosya okuma ve yazma işlemi yapılırken bazı durumlarda dosyadaki veriyi değiştirmek istiyorum. mesela main fonksiyonun en sonunda oldugu gibi(aaaaaa.setName("bbbbb");) object degiskeninde yapacagım bir değişiklik ile file dosyasına bu degisikliği nasıl aktarabilirim? teşekkürler.


    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;

    public class ClassObjectIODemo
    {
    public static void main(String[] args)
    {
    ObjectOutputStream outputStream = null;
    String fileName = "species.records";

    try{
    outputStream = new ObjectOutputStream(new FileOutputStream(fileName));
    }

    catch(IOException e){
    System.out.println("Error opening output file " +fileName + ".");
    System.exit(0);
    }

    Species califCondor = new Species("Calif. Condor", 27, 0.02);
    Species blackRhino = new Species("Black Rhino", 100, 1.0);
    Species aaaaaa = new Species("aaaaa", 99, 55.23);

    try{
    outputStream.writeObject(califCondor);
    outputStream.writeObject(blackRhino);
    outputStream.writeObject(aaaaaa);
    outputStream.close( );
    }

    catch(IOException e){
    System.out.println("Error writing to file " +fileName + ".");
    System.exit(0);
    }
    System.out.println("Records sent to file " + fileName + ".");
    System.out.println("Now let's reopen the file and echo the records.");
    ObjectInputStream inputStream = null;

    try{
    inputStream = new ObjectInputStream(new FileInputStream("species.records"));
    }

    catch(IOException e){
    System.out.println("Error opening input file " +fileName + ".");
    System.exit(0);
    }

    Species readOne = null, readTwo = null, readThree = null, readFour = null;


    try{
    readOne = (Species)inputStream.readObject( );
    readTwo = (Species)inputStream.readObject( );
    readThree = (Species)inputStream.readObject( );
    inputStream.close( );
    }

    catch(Exception e){
    System.out.println("Error reading from file " +fileName + ".");
    System.exit(0);
    }

    System.out.println("The following were read\n" +"from the file " + fileName + ".");
    System.out.println(readOne);
    System.out.println( );
    System.out.println(readTwo);
    System.out.println( );
    System.out.println(readThree);
    System.out.println("End of program.");

    aaaaaa.setName("bbbbb");
    // EN SON KALDIGIM YER.

    }
    }




    import java.io.Serializable;
    import java.util.Scanner;

    /**
    Serialized class for data on endangered species.
    Includes a main method.
    */
    public class Species implements Serializable
    {
    private String name;
    private int population;
    private double growthRate;

    public void setName(String name) {
    this.name = name;
    }

    public Species( )
    {
    name = null;
    population = 0;
    growthRate = 0;
    }

    public Species(String initialName, int initialPopulation,
    double initialGrowthRate)
    {
    name = initialName;
    if (initialPopulation >= 0)
    population = initialPopulation;
    else
    {
    System.out.println("ERROR: Negative population.");
    System.exit(0);
    }
    growthRate = initialGrowthRate;
    }

    public String toString()
    {
    return ("Name = " + name + "\n"
    + "Population = " + population + "\n"
    + "Growth rate = " + growthRate + "%");
    }

    public void readInput( )
    {
    Scanner keyboard = new Scanner(System.in);
    System.out.println("What is the species' name?");
    name = keyboard.nextLine( );

    System.out.println(
    "What is the population of the species?");
    population = keyboard.nextInt( );
    while (population < 0)
    {
    System.out.println("Population cannot be negative.");
    System.out.println("Reenter population:");
    population = keyboard.nextInt( );
    }

    System.out.println("Enter growth rate (% increase per year):");
    growthRate = keyboard.nextDouble( );
    }

    public void writeOutput( )
    {
    System.out.println("Name = " + name);
    System.out.println("Population = " + population);
    System.out.println("Growth rate = " + growthRate + "%");
    }

    /**
    Precondition: years is a nonnegative number.
    Returns the projected population of the calling object
    after the specified number of years.
    */
    public int predictPopulation(int years)
    {
    int result = 0;
    double populationAmount = population;
    int count = years;
    while ((count > 0) && (populationAmount > 0))
    {
    populationAmount = (populationAmount +
    (growthRate / 100) * populationAmount);
    count--;
    }
    if (populationAmount > 0)
    result = (int)populationAmount;

    return result;
    }

    public void setSpecies(String newName, int newPopulation,
    double newGrowthRate)
    {
    name = newName;
    if (newPopulation >= 0)
    population = newPopulation;
    else
    {
    System.out.println("ERROR: using a negative population.");
    System.exit(0);
    }
    growthRate = newGrowthRate;
    }

    public String getName( )
    {
    return name;
    }

    public int getPopulation( )
    {
    return population;
    }

    public double getGrowthRate( )
    {
    return growthRate;
    }

    public boolean equals(Species otherObject)
    {
    return (name.equalsIgnoreCase(otherObject.name)) &&
    (population == otherObject.population) &&
    (growthRate == otherObject.growthRate);
    }
    }



    |
    |
    _____________________________
    İşlemci: Intel Pentium III@933Mhz | Ram: 256MB PC133 SDRAM | Anakart: Intel Onboard | Ekran Kartı: Nvidia Geforce 6200 AGP@128MB | Ses Kartı: Sound Blaster 16 CT2800 ISA | HDD: Seagate Barracuda 30GB | PSU: Antec 300W | Monitör: Philips CRT 107E66 | OS: Windows XP Pro.




  • Yüzbaşı
    393 Mesaj
    Ilk kod bloguna bakinca gordugum; once dosyaya yaziyorsun sonra dosyadan okuyorsun. okuduktan sonra aaaaaa objesinin adini degistirmis olmayi anlayamadim. Yani en basinda o bazi durumlari belirleyip if/else sartina bagayip ona gore yazmak varken dosyayi yazdirip sonra okutturup sonra da degistirmek mi istiyorsun? oyleyse ya satir satir bakip bu satir gercekten bendeki objeyle ayni mi diye karsilastirirsin baska bir outputstream'a yazarsin ve bu yeni olusan outputstream'i da yeni dosya olarak ya da olan dosyanin uzerine yazdirabilirsin. daha basiti aklima gelmedi
    |
    |
    _____________________________
    hosaf.org
    Honda Jazz | MacBook Pro | LG | Vodafone
Sayfaya Git:
Sayfa:
1
Reklamlar
SEO
Media Sözlük
bankalar.org
Sohbet
kolayoto.com
Bu sayfanın
Mobil sürümü
Mini Sürümü

BR2
0,203
1.2.165

Reklamlar
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.