[Playlisten] [Impressum und Datenschutzerklärung]

07.2.2 Streams, FileStream, BinaryWriter, Teil 2


CC-BY-NC-SA 3.0

Tempo:

Anklickbares Transkript:

ich war dabei zu erzählen wie man den Internet und allgemein mit Dateien umgeht wenn ich große Datenmengen habe die ich unterbringen will wenn die Sachen dauerhaft archivieren willwenn ich Sachen zu Fuß von A nach B transportieren?? USB Stick komme ich um Dateiennicht hindie Lösung eins das war die billigstedie Klassen Gültigkeit direkthaben sowas wiedie Klasse freiestatische Methode weiterer Lionseinfach in einem solchen Datei raus schreibtsolche Funktion davon gibt's ja der andere die Funktion sind zwar nett aber sobald ich Dateien habe diedrei hundert Megabyte groß sind oder echt recht Dateien habe den Ball Gigabyte groß sind habe ich keine Chance in einem Schlagzu lesen zu schreibenund das habe ich ebenfalls nicht diese schonungslosen Einschlag zu tun wenn die Datei noch gar nicht geschlossen ist wenn jemand andersselbst die Datei gerade noch Schreibweise aus Internet geladen wirdoder weil hintenrum bei Messwerte für Messwerte der nächsten Vernichtung noch weg und ich möchte trotzdem PlasmaanfangDatei zuall das können dieserArt von Sondersituationausder Fallklasse nicht machenda muss man dann zu Filmsgreifen die hatte schon ansatzweiseerzählt der Gedanke hinter einem Stream erstdannein solches abstraktes Modell ich hab eineFolge ein bereitssequenziellich kann nicht beliebig jetzt auf irgend eines dabei zugreifendas Verwenden Access wahlfreier Zugriffim normalen Speichersacküber die Variable Z gibt mir die VariableUund da muss ich nicht großartig basteln bisU und Z kommtdas Tier ist aber nicht wahlfreidiese Folge an Beitritt sequenziell durchgegangen es gibt einen Zeigercursorin den Streamund mit dem Cursor kann ich wandernbeziehungsweisewenn ich lese wandert der Cursor automatischwenn ich dieses Byte lese hier wandert der Cursor automatisch zum nächstenich das Weit schreibe Wange der Cursor automatisch zum erstenkann also effektiv nur an einer einzigen Stellelesen und schreibendann je nach Typ des Teams kann ich diese StelleverschiebenSieg wäre der Begriff dafürdass ich die Position des Kaisers frei einstellen kann?? diese eine bevorzugte Stelle zum Lesen und Schreiben in einem Stringdass der wesentliche Gedanke ein sequenzieller Zugriff Gang wahlfreier Zugriff ein sequenzieller Zugriffdas ist in allenKlassenbibliothekeneingebaut die Idee des Films das ist nichts Besonderes für dasInternet ist der Stream eineabstrakteKlassezeigtihrzu zeigendas hatte zwar schon gezeigt der Stream ist abstraktund eineMutterklassefür diverse nette Ableitungender Arbeitsliste mal so Streamabgeleitete Typenmüssten ziemlich viele sein?? insbesondere steht alles drin wieKomprimierenauf diverse Arten zum Beispiel mit zu komprimierendechiffrierenverschlüsselnall das wird dann gemacht mit Streamsummeneinmal dieses Konzept hat von einersequenziellenAnordnung von Dateneine Liste von Bytesdie Einrichtung einer Stelle gelesenoder geschrieben werden kannüberträgt man das Konzept eben Klammer zu für andere Anwendungen nicht nur für Dateienbesser geziert von dem Stream sosuper vieleAbleitungenmit dem gleichen Verfahren kann man ganz andere Sachen machen Istrien selbst hatte ich schon gesagt ist ihm selbst ist abstrakt und es gibt den Stream nicht wirklichals Instanzich kann keinen einzelnen Stream bauen was ich bauen kann ist ein Sonderfall Stream das sag ich gleichfalls mindestens die aus einer Datei das ist der übliche Stream aber sie können auch diese ganz an dir stehen tatsächlich dann war nur den Spleen selbstkönnen sie nicht der ist nur dazu da die üblichen abstrakten Klassen ist nur dazu daum zu vererben um geerbt zu werden dass ich diverseArmmethodenund Properties ihrin allen mein Kindklassenich zeige nur den Fallstream die anderenkann sich vorstellen werden sie ähnlich funktionieren bei dir von derselben Klasseschlimm abgeleitet sind sobald man den Verstand als denIndianern kein großes Drama mehr dass es der schönen solchen Abstraktionan für denLückentext Komma acht ?? ins Programm gehenKomma ??bekommenfür den Lückentext ?? acht will ich jetzt mal anfangenwarnicht das Ziel selbst geht nicht weil abstrakt aber einfallslos hingehtPunkt es ist im EuroEinfallsfilmeine DirektwahlstreamSchreibweiseoben drin stehtanscheinendnoch nicht da?? es ist im Euroalles aus diesem Namensraum System unter NamensraumRaum iOSohne diesen VorspannsiOS verfügbar wegen des you singdeshalb Beistrichfallsich möchte einen neuen falls Bauerndas geht jetzt ist nicht abstraktwarensie in die perverse Anzahl von fünfzehn Überladung diesen Kontakte gibt es fünfzehn Mal in fünfzehn verschiedenen Variantenmit allen erdenklichen KombinationenvonParameterndie man da vielleicht geben könnteich gebe ihm einen Pfadam??Komma sehr kreativ wenn wir im Test Punktsoll ich den Text denen ich denn jetzt bei TXT auch ?? gleich ?? Text wirdVater den sich auch so aussehensage Laufwerkverzeichnisweiterwill Einfahrt haben dann VillaBeistrich ebenich Variante hatte ich die Nummer vieroder die Sache sicher sogar die Nummer vier sogar noch besser jetzt will er wissenwieKomma neunden Fall Modes gefällt mit seiner Tat den Fall Mordfälle als nächstes wissen das ist eine Auflistung?? sich erinnern anZuständeverschiedene Zustände mischen ist KaputtmaschinemussMaschine läuft auf halber Kraft und so weiter so selten mit den Hooligans gemacht File Mode ist eine Informationaus der Del ich mir jetztin welcher Betriebsartdenn ich diesediesen Fall Stream damit diese Datei öffnen wir zum Beispiel?? Bendmöchte ich hinten was anhängenwie Aidsman anSchwedterzeuge eine neue Datei oder wenn sie schon da ist überschreibe sie quält nunerzeuge eine neue DateiKomma die schon da istder Verein Exceptions also auf keinen Fall überschreibenoben würde heißeneinfacher aufmachenund so weiter Sie können sich das durchlesendiverse verschiedene Modi sind an die gibt es mehr oder minder in der Form auf allen Systemen zu sagen wie soll denn die Datei aufgemacht werden ?? möchte ich jetztdenke man sinnvollerweise querbeet machendannerzeuge die Datei wenn sie noch nicht da istoder mach sie einfach auf den sie schon damals überschreibt sie danndass wir das übliche was man zum Schreiben benutztjedem Fall Weg schreiben wenn das schon da ist dannscheinbar eben drüber aber das war schon damalsdas wäre Fall Mutund dann kommt der Fall Accessnunauch wieder eineInformationmit drei Möglichkeitenmöchte ich schreibenBeistrich lesen Englisch richtig lesen möchte ich lesen und schreiben oder möchte ich nur schreibenmöchte ?? nur schreibenwarenda Komma ?? Klammer zu machen mit dem letzten hier frei stärken sie dann sogar noch sagen ob andere Leute parallel zu Ihnen diese Datei schreiben oder lesen dürfen das ist ?? richtig gefährlichaber das ist ??total interessante Anwendung für neben Dateien erst halb fertig sind mit dem letzten könnte tatsächlich erlauben das jemand andersdieselbe Datei benutztzum gleichen Zeitpunkt aber dasstürzen was wahrscheinlichKlammer zusodas soll heißenBauer einen neuen Fall Stream er verweistauf diese Datei die wird geöffnetsoll es anders ?? wenn sie noch nicht da ist wird sie erzeugt wenn sie schon da ist jetzt überschriebenund gesagt ich möchte bitte nurschreibenund nicht lesenWasser Falls du jetzt hier soerlaubtder ?? letzterer schon mal gezeigt ganze Makrophagenkenwieoffensichtlich michbei diesem hier wird Kenvitfordergeben weil ich gesagt habe ich möchte nur schreiben Ken White wird zu ergeben weil ich gesagt habe ich möchte nur schreibenwarendas ganze ist das hier einfach schreibe ein weiterer ausDatei öffnen ich stehe am Anfang des kann ich einfach was raus schreibenund jetzt bringen wir den umliegenden Byte habenversuchtes baldzwoundvierzigHaushaben und wenn du damit fertig bistKommawenn du damit fertig bist schreibe das bei dreizehn Hausbesagennun ist dieser Dateistromdamit die Datei zwei Bytes langund erzeugt die Datei sinnvollerweise zu machen der constructionmacht es auchmit sowas in C sehen später irgendwas mit Open eine Datei öffnendas macht jetzt der constructionBauerBauereinfallsschieneöffne die Datei das als implizit das irgendwann oben drin öffnenwas ich jetzt aber selber sagen muss ist das die Datei bitte auch wieder geschlossen wird Klausdas davon gefälligst nicht vergessen wenn Sie die Datei offen lassendann haben andere Leute Probleme diese Dateiaufzumachenes sei denn man hat hier zufällig den Zugrifferlaubtauf die andie einen können auch noch damit umgehendass sie Dateioffenalso typischerweiseunbedingt ein Kloster ?? dabei als James?? wird der construction den Streamaufmachenkönnen damit arbeiten in diesem Fall steht der Cursor am Anfang schreibebei zwoundvierzigich habe das bei dreizehnfertig bin mach ich die Datei zuscheint sich also Datei haben die zwei Bytes lang istsiestehen müssen sich direkt neben dem Weine bestehenda steht es TXT?? zwei beidseitig ganze gar nicht fassensie bitte nicht vier Kilobyte weil die Festplatte nicht in einzelne Bytes zerstückelt ist ?? sinnloser Bereiche zerstückelte sind es tatsächlichezwei Bytes lang diesen genau diese beiden ??auf der Platte gelandet?? wenn sie da reinguckenwas will ich sie nicht anguckenmit Data wenn ich jetzt lästig die Aufmacher versucht das mit Notepad zu öffnen Notepad versucht einen Zeichen zu sehenFragezeichenmit der Kopnummer dreizehn und Rittergut Nummer zweiundvierzigund Nummer dreizehnist in der Steuerzeichenerscheint gar nicht ?? und co Klammer zu einundvierzig ist offensichtlich das Sternchendreißig schreibe kein Klartextmit Test erwähnte sie mit dem Editor aufmachen des mit dem ?? dort machen sie jetzt hier nicht eins drei zwei vier oder sonst was sie sehendies Binärmusterinterpretiert als Zeichenein Bytes dreizehn ein hundert zweiundvierzigdas nimmt der Texteditor als Zeichenlieber gleich noch malwas analso derStream selbst geht mit bei zum Beginn Bytes und nichts anderes diese Kästchen hier sind alles Bytes beginnen bei Schritten weiterund das ist das Ende für den vielmehr kann der nichtsagen ?? kann der nicht Musik eine ganze Stange Anwaltsschreibenstoppen überhauptnursie können ganze Stange Anwaltsschreibenwenn Sie sagen FSals Team habe ich dasReizdar können sagenschreibe eine ganze Stange ein Bytesdurch eine eins schreiben kann etliche hundert Schreibenein großer Unterschiedder Stream als solcher kann nur Bytes der ist wirklich dumm diese Positionierungvon Cursor ist auch in BytesBeistrich zurecht bemerkt aberdas ist noch nicht der Weisheit letzter Schluss wenn ich nur beizutragensie können sich genauso lesen fürchtet sich vor das man sich vorstellenmachen nicht wie jede Dateiaufzügeneu zu erzeugenwirklich was anderes rausdafür gibt's netterweisezwei Hilfsklassenden Beinen weit weiterden Beine wie leidervoll auf amerikanischder hilft uns dabeider beiden Variantenist uns dabei alle möglichen Dateitypenwie diesen Dateitypsagen die möglichen Zahlen?? und Konsorten rauszuschreibenals bei der es einfach Übersetzerder nimmt die Bytesder normalen Datentypenund wandelt siein Bytes Haustieren wirklich weg?? ich brauche ein Bein weiter nicht in den RugbyRahmen so an Beine wie weiterweiterwillwirwissen in welchen Strom jetzt ein Schreiben solldas es einfach als ob sie noch ?? Maschine davor hängenbeim ?? weiter ist eine Maschine der dann alle möglichenüblichen Typen an den Zinsund Langsund Shortsund reichte dann einfach als Bitmusterals Bytefolge weiteran eins viel natürlicher als die von eben einstimmig beschlossen hätte das war sehr klug ?? ich Machenummer wieder aufsolltenSieden Textkopplung besten denkbaren Fall so ich machte noch mal ausnatürlichFS eingeführteFilesystem aufgemachteBeine weiterbildenfallsjetzt oder ein anderes sinnloses Mittemit dem einem leider können sie auch genauso jetzt in siebte Dateiin ein siebzehn soll ich sagen und einen verschlüsselten Stream schreiben Hauptsache ihr steht ein Stream alles was dabei ?? weiterewird ist Bytes zu schreibendafür reicht irgendein Stream muss sich um ebenfallssodamit habe ichanscheinend noch nicht Navigationerweitert ?? in dannbewegenkönnen?? damit jetzt habe ich damit habe ich jetzt eine Maschinediealle möglichenStandardtypenumwandeln kann in Bytesdann Beck schreibt in diesem Fallkönnte sowas bauen wir wiebereitsachtzehn fach überladendiese weit Funktion gibt es in achtzehn Varianten nämlich Sie können ein Buch schreibenSie können ein Byte Schreiben Sie können ein Beiträgeschreiben sie können einen einzelnen Charakter schreibensie können einschreiben zu können dessen ?? dieserTyp fürs Finanzwesen schreiben sie können an der ?? schreiben und so weiter alle durch definiert alle Standardtypen kann ich jetzt schreiben und dann kann ich endlich jetzt sein okay schreibt mit den doublezweiundvierzigoder schreibt mirden Charakter??schreibtmir den Charakter was machen jetztXdem Gesetz das einfachste Bundle weiter es einfach dafür da zu übersetzen in dem diese hierja der doubleacht Bytesin diese acht Bytes und schmeißt in dem Fallstreamvor die Füße dieses Xdebütierte als Bytes und schmeißt es dem Patienten vor die Füße oder welches Team auch immer das war welche fertig sind muss natürlich wieder sagenbitte schließenbloßdann wenn ich das Aufrufefür diesen Wandel weiterdürfte automatisch das bloß für den Fall Sim Autos müssen danach nicht noch mal den Fall zu dem zu machen ??das passiert von selbstsicher Klaus sagenmuss das an ??zu machen Punkt es müssten jetzt ein paar mehr weit sein als ebenokayBeistrich dass Xdie double-Zahlist anscheinendein komisches Zeichenmuster geworden aber das X ist noch zu ergebeninsgesamtdas unser sie Beistrich weil es immer schon neun Bytesdie double-Zahlnimmt acht Bytes in acht Bytes im sechzig Bit erledigt die vierundsechzigBit der double-Zahlweist die raus alsacht Bytes und dahinter schreibt er noch und sechster sind die neun Bytes die da drin stehtdas ist dann dieseMönche diese binäre Übersetzungeine weiter einem das Wasser steht als Binärzahljeweilsim binären Muster wies im Speicher steht in neunundneunzigMeistersin den Stream reinich sollte vielleicht einmal aufzeigenwie dasumgekehrtaussiehtBilanz wieder genesen brichtgerade einnundarumdie zwei vierzig nicht lesbardie zweiundvierzigals double-Zahl wird doch intern geschriebenalseins Komma soundsovielmal zwei Hochsaison zu vier und dieses und dieses wird binär codiert in einen vierundsechzigBit Muster vierundsechzigBit oder die zumalder ??vierundsechzigin achtzig vierundsechzig Bit Monsterdiese beiden Zahlen hier werden zu einem vier sechzig Bitmuster fürchterlichenrichtig Bitmuster und was passiert ist dassdiese acht Byte für sechzig Bit acht weiters diese acht Bytestumpf raus geschrieben werdenda steht nicht vier zwei Punkt null ?? Und-Zeichen besteht ein absurdes Bitmusterdas acht Bytes langund nicht erkennbarsie können auch einzelneEinschreibedomainssind aus zwei vierzig Komma null als Zeichenkettesodas ist eine andere Geschichte hier steht ein double-Zahlmit acht Bytes ausgegebensein vierzig Komma null wird jetzt als Zeichen vier zwei Punkt null ausgegebenda vier zwei Punkt nullund da scheint anscheinend noch was zustehen das es wurden Länge der Zeichenkettemuss einer wissen wo sie aufhörtVorsichtmit Unterscheidung von binärund Klartextdas hier gehtdie Nähe raus deshalb heißt es ja Beine weitersolange sie nicht ?? Zeichen oder Swing ausgeben ?? die hier ausgeben geht wirklich dasin der Musterdas sie dann ?? man sich als Text anguckt komisch ausich vertrat noch zeigen wie das Lesen aus sie das sieht ein bisschen anders aus wenn Sie einenwennSieeine ?? wiederhabenden sie zusammenbauen müssen aus einem Stream fürchtet sich vor??dann klappt dasmit dem überladen nicht so schön dabei nämlich wiederdie müssen dann wirklich sagen Leser ein beilese ein Zeichen lese einen doublelese einenshort Design Normalen in dieser Einladungandas Gedicht mit überladen der jetzt wirklich diese Zigtausend verschiedenen Funktionenfür jeden einzelnenTypdabeilese die nächstedouble-Zahldie du da findestzu machenPunkt so wird das Lesen an aussehendesWissen asymmetrischdurch das überladenklappt das mit dem Schreiben ganz schönerkennt einfach den Typ vonder Variableübergeben und in die richtigeVariante von weitbeim lesen wir das nicht beim Lesen müssen Sie sagen was sie denn lesen Worte möchte double-Zahl