C#-ban van olyan szerializáció eljárás mivel hozzálehet adni egy létező fájlhoz az objektumot anélkül hogy beolvasnám az egész fájlt?
És van olyan amivel csak egy objektumot lehet volna kiolvasni, (nem akarom az egész fájlt beolvasni).
Egyszerre csak egy elemet olvasok be.
minta:
<?xml version="1.0"?>
<items xmlns:xsd=" [link] xmlns:xsi=" [link]
<Item username="1" password="aaa" />
<Item username="2" password="aaa" />
<Item username="3" password="aaa" />
<Item username="4" password="aaa" />
<Item username="5" password="aaa" />
<Item username="6" password="aaa" />
.
.
.
.
<Item username="10000" password="aaa" />
</items>
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
"Szerializációkor fájlba menti az adatokat?"
Kicsoda??
Szerinted ez mi: new FileStream(@"c:\bevasarlas.bin", FileMode.Open);
@"c:\bevasarlas.bin" ez nem egy fájl elérése???
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Itt láthatod, hogy a Serialize (és a Deserialize) nem fájl(stream)-t vár, hanem bármilyen streamet.
A válaszolónak igaza van, a fájlba írás és a szerializáció 2 külön dolog, memóriába is tudsz szerializálni.
A linkelt oldaladon picit félremezető a "Szükségünk lesz egy fájlstreamre" mondat, hiszen ez lehetne pl egy MemoryStream is.
Egyébként a kérdésre válaszolva: pl saját fájl formátummal, pl a végére csapod az új opjektumod szerializált adatát. Persze a kiolvasás így nehézkesebb. Kérdés, hogy fix méretűek-e az objektumaid? Ha igen, ebben az esetben egyszerűen kiszámíthatod, hogy hova kell seekelni a beolvasásákor. Ha nem fix, akkor már nehézkesebb, vhova el kéne tárolnod az objetumok offsetjeit.... vagy használj adatbázist.
Csak ezt nem értem:
FileStream fs = new FileStream("DataFile.dat", FileMode.Create);
formatter.Serialize(fs, addresses);
ezzel nem fájlba írod ki az adatot?
XML Serialize használok
amit data.xml 'írok' ki.
Deserialize-kor data.xml olvasok ki.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
De, azzal fájlba írod ki. De nem a formatter írja fájlba, hanem az fs.
A formatter objektumod szerializál, az fs pedig fájlba ír.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!