2016-12-04 10 views
-1

Angenommen, mein Text Dateiname ist "FileToUse". Wie lese ich diese Datei byteweise mit der read-Methode aus der FileInputStream-Klasse?Wie lese ich eine Textdatei mit der read() Methode?

Mein Endziel ist es, eine HashMap mit dem Schlüssel als der Buchstabe zu erstellen (aber das Byte für den Buchstaben wäre der Schlüssel) und der Wert wie die Anzahl der Buchstaben in der Textdatei. Irgendwelche Tipps, wie dies zu tun wäre, würden geschätzt. Hier

Antwort

2

ist, was Sie tun:

  1. Zuerst erstellen Sie eine Datei
  2. Dann verknüpfen Sie die Datei auf dem Fileinputstream
  3. Wenn die Datei-Links dann ordnen Sie die Dateiinhalte nacheinander mit Das read() überprüft gleichzeitig, ob es sich nicht um das EOF handelt. read() -1 zurück für EOF
  4. Dann bearbeiten Sie den Inhalt in die Karte

    File file = new File("FileToUse.txt"); 
    FileInputStream fis = null; 
    
        try { 
         fis = new FileInputStream(file); 
    
         System.out.println("Total file size to read (in bytes) : " 
           + fis.available()); 
    
         int content; 
         while ((content = fis.read()) != -1) { 
          // process the content into the hashmap 
         } 
    
        } catch (IOException e) { 
         e.printStackTrace(); 
        } finally { 
         try { 
          if (fis != null) 
           fis.close(); 
         } catch (IOException ex) { 
          ex.printStackTrace(); 
         } 
        } 
    } 
    } 
    
+0

Awesome! Also sage ich HashMap hashmap = neue HashMap (). Wäre es richtig, einen neuen Schlüssel mit "hashmap.put (content, 1)" hinzuzufügen und einen vorhandenen Schlüssel mit "hashmap.put (content, hashmap.get (content) + 1)" hinzuzufügen? –

+0

Ja! Das sollte funktionieren – Moonstruck

+0

Großartig, danke! –

Verwandte Themen