Stream a FileStream vkladanie obsahu na začiatok   otázka

I/O operace, .NET

Dá sa nejakým spôsobom vložiť obsah aj pred začiatok streamu? To znamená nerozširovať stream za koniec ale pred začiatok. Skúšal som nastaviť stream.Position a metódu stream.Seek na zápornú hodnotu... ale vyhadzuje to výnimku. Viem že sa dá vytvoriť nový stream vložiť tam obsah a za neho skopírovať ten starý ale predpokladám že to je asi pomalé (musí sa vpodstate prekopírovať celý súbor).

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nedá se vkládat, pouze přepisovat. Začátek streamu je vždy na pozici 0 a metodou Seek se nastaví "kurzor" na libovolnou pozici od 0 až do konce. Kopírovat stream pomalé není a i kdyby to šlo vložit před začátek streamu, stejně by se potom výsledek musel zkopírovat.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Kopírovat stream je rozhodně pomalejší než třeba jen připisovat na konec.

A co se týče výše uvedeného problému, doporučuji navrhnout formát ukládání dat tak, abyste na začátek streamu přidávat nemusel.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To ano, ale o tom řeč nebyla. Já to myslel obecně, žádná rychlejší metoda zápisu než Stream ve Frameworku není a pokud je nutné vkládat na začátek, kopírovat se musí.

nahlásit spamnahlásit spam 0 / 2 odpovědětodpovědět

Já s vámi nepolemizuju, já jen říkám, že je to pomalejší než připisovat na konec nebo přepisovat data.

Vy jen říkáte, že to není pomalé, z toho by mohl někdo usoudit, že tam výkonnostní rozdíl není.

Každopádně to nic nemění na tom, že je lepší navrhnout formát dat, který tohle přidávání na začátek nepotřebuje.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback