So erhalten Sie den Inhalt einer TXT-Datei über FileReader in JS

So erhalten Sie den Inhalt einer TXT-Datei über FileReader in JS

JS erhält den Inhalt der TXT-Datei über FileReader

Vor Kurzem habe ich mich mit der Anforderung beschäftigt, TXT-Dateien mit JS zu analysieren, um einige Verarbeitungsschritte durchzuführen. Hier ist eine Zusammenfassung.

Methode zum Lesen von TXT-Dateien

var reader = neuer FileReader();
var fileUploader = document.getElementById("fileUploader"); //ID des Eingabefelds abrufen, um die Dateiinformationen abzurufen reader.readAsText(fileUploader.files[0], "utf-8"); //Kodierung festlegen reader.onload = function() { undefined
data.trim().split('\n').forEach(Funktion(v, i){undefiniert
Fenster['str' + (i+1)] = v
}
}
  • v ist der Inhalt jeder Textzeile in .txt
  • i ist die Zeilennummer in .txt

Es gibt keine direkte Methode, um die Gesamtzahl der Zeilen in einer TXT-Datei zu ermitteln, daher verwende ich hier eine Schleife, um dies zu verarbeiten:

Variablenanzahl = 0;
data.trim().split('\n').forEach(Funktion(v, i){undefiniert
zählen++;
})

JS: FileReader() liest Dateien

Mit dem FileReader-Objekt kann eine Webanwendung den Inhalt einer auf dem Computer des Benutzers gespeicherten Datei (oder eines Rohdatenpuffers) asynchron lesen. Dabei wird ein File- oder Blob-Objekt verwendet, um die zu lesende Datei oder die zu lesenden Daten anzugeben.

Eigentum:

  • FileReader.error zeigt an, dass beim Lesen einer Datei ein Fehler aufgetreten ist
  • FileReader.readyState
  • Das FilerReader.result gelesene Ergebnis

Beginnen wir mit einem praktischen Beispiel

index.html lautet wie folgt

<!DOCTYPE html>
<html lang="de">
<Kopf>
<meta charset="UTF-8">
<meta name="viewport" content="width=Gerätebreite, Anfangsmaßstab=1.0">
<meta http-equiv="X-UA-kompatibel" content="ie=edge">
<title>Dateileser</title>
</Kopf>
<Text>
<input id="Eingabe" Typ="Datei">
</body>
</html>

demo.txt lautet wie folgt

Dies ist ein Demotest

Hallo Welt

Lesen von txt-Dateien

<Skript>
  const input = document.querySelector('Eingabe[Typ=Datei]')
  input.addEventListener('ändern', ()=>{
    const reader = neuer FileReader()
    reader.readAsText(input.files[0],'utf8') // input.files[0] ist die erste Datei reader.onload = ()=>{
      document.body.innerHTML += reader.result // reader.result ist das Ergebnis}
  }, FALSCH)
  </Skript>

Einlesen von Bilddateien

<Skript>
  const input = document.querySelector('Eingabe[Typ=Datei]')
  input.addEventListener('ändern', ()=>{
    console.log( Eingabedateien )
    const reader = neuer FileReader()
    reader.readAsDataURL(input.files[0]) // input.files[0] ist die erste Datei reader.onload = ()=>{
      const img = neues Bild()
      img.src = Leser.Ergebnis
      document.body.appendChild(img) // reader.result ist das Ergebnis der Erfassung}
  }, FALSCH)
  </Skript>

Beispiele

importiere java.io.*;
öffentliche Klasse FileRead {
    public static void main(String args[]) wirft IOException {
        Datei Datei = neue Datei("Hallo1.txt");
        // Eine Datei erstellen file.createNewFile();
        // erstellt ein FileWriter-Objekt
        FileWriter-Writer = neuer FileWriter(Datei);
        // Inhalt in die Datei schreiben writer.write("Dies\n ist\n ein\n Beispiel\n");
        Schriftsteller.Flush();
        Schriftsteller.schließen();
        //Erstellen Sie ein FileReader-Objekt. FileReader fr = new FileReader(file);
        zeichen[] a = neues zeichen[50];
        fr.read(a); // Lies den Inhalt des Arrays für (char c : a)
            System.out.print(c); // Zeichen einzeln drucken fr.close();
    }
}

Verfahren

Methodendefinition beschreiben
abbrechen():void Beendet einen Dateilesevorgang
readAsArrayBuffer(Datei):void Asynchrones Lesen des Dateiinhalts Byte für Byte, das Ergebnis wird durch ein ArrayBuffer-Objekt dargestellt
readAsBinaryString(Datei):void Asynchrones Lesen des Dateiinhalts byteweise, das Ergebnis ist eine Binärzeichenfolge der Datei
readAsDataURL(Datei):void Lesen Sie den Dateiinhalt asynchron und stellen Sie das Ergebnis als Zeichenfolge in der Form „data:url“ dar.
readAsText(Datei,Kodierung):void Lesen Sie den Dateiinhalt asynchron Zeichen für Zeichen und das Ergebnis wird als Zeichenfolge ausgedrückt

Ereignis

Ereignisname beschreiben
beim Abbrechen Wird aufgerufen, wenn ein Lesevorgang abgebrochen wird
bei Fehler Wird aufgerufen, wenn bei einem Lesevorgang ein Fehler auftritt
laden Wird aufgerufen, wenn der Lesevorgang erfolgreich abgeschlossen ist
am Ende laden Wird aufgerufen, wenn der Lesevorgang abgeschlossen ist, unabhängig davon, ob er erfolgreich war oder nicht.
beim Laden starten Wird aufgerufen, bevor ein Lesevorgang beginnt
über Fortschritte Wird regelmäßig beim Lesen von Daten aufgerufen

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden.

Das könnte Sie auch interessieren:
  • JavaScript liest Dateien über die Filereader-Schnittstelle
  • Anwendungsbeispiel für JS+HTML5 FileReader-Objekte
  • JS+HTML5 FileReader implementiert lokale Vorschaufunktion vor dem Dateiupload

<<:  Eine kurze Diskussion über die magischen Verwendungsmöglichkeiten von CSS-Pseudoelementen und Pseudoklassen

>>:  So verwenden Sie dl(dt,dd), ul(li), ol(li) in HTML

Artikel empfehlen

Das mobile Vue-Terminal realisiert den Finger-Gleiteffekt

In diesem Artikelbeispiel wird der spezifische Co...

Installations-Tutorial zur komprimierten Version von MySQL 8.0.11

In diesem Artikel finden Sie das Installations-Tu...

Tutorial zur Installation und Konfiguration von msmtp und mutt für Raspberry Pi

1. Installieren Sie mutt sudo apt-get install mut...

So generieren Sie eine eindeutige Server-ID in MySQL

Vorwort Wir alle wissen, dass MySQL die Server-ID...

So implementieren Sie Call, Apply und Binding in nativem JS

1. Implementieren Sie den Anruf Schritt: Legen Si...

Detaillierte Erläuterung des Ausführungsprinzips des MySQL-Kill-Befehls

Inhaltsverzeichnis Prinzip der Kill-Befehlsausfüh...

Elementui exportiert Daten in XLSX- und Excel-Tabellen

Kürzlich habe ich vom Vue-Projekt erfahren und bi...

Implementierung der Parametersprungfunktion im Vue-Projekt

Seitenbeschreibung:​ Hauptseite: Name —> shish...

Verwendung von „align-content“ im Zeilenumbruchbereich des Flex-Layouts

1. Das in diesem Artikel implementierte Effektdia...

So installieren und deinstallieren Sie open-vswitch unter Linux

1. Kompilieren und installieren Sie OVS aus dem Q...

Einführung in die Farbabstimmung von Königsblau für Webdesign

Klassische Farbkombinationen vermitteln Kraft und ...

display:grid in CSS3, eine Einführung in das Rasterlayout

1. Rasterlayout (Raster): Es unterteilt die Webse...