Java tillhandahåller ett utbud av valmöjligheter för läsning och bearbetning av indata-filer . Använda " FileReader , " " BufferedReader " och klasserna Scanner , kan du läsa i innehållet i en extern fil i enskilda linjer . När du har varje rad i ditt program , kan du använda metoder i klassen String att tokenize det . När du tokenize en rad i filen , kan programmet lagra tokens i matriser för vidare bearbetning . Tokenizing indatafiler i Java är vanligt och användbart . Instruktioner
1
Importera Java Utilities för din fil inmatning . Den ingående process använder några klasser i Java , så lägg till följande import uttalanden på toppen av din Java- klass -fil :
import java.io. * , import java.util.Scanner ;
Detta ger programmet möjlighet att hitta filen , öppna den som input stream , läsa in innehållet , och sedan bearbeta dem .
2
Skapa instanser av de ingående klasser du behöver . Du kommer att behöva lägga försöka fånga block till ditt program , eftersom input -och output kan kasta undantag , vilket gör ditt program att misslyckas , till exempel om indatafilen du anger inte kan lokaliseras . Lägg till följande kod i ditt program :
try { FileReader fr = nya FileReader ( " testfile.txt " ) ; BufferedReader br = new BufferedReader ( fr) , Scanner scan = new Scanner ( br ) ;//vidareförädling här } catch ( IOException OIE ) { System.out.println ( ioe.getMessage ( ) ) ; }
Denna kod skapar instanser av klasserna " FileReader , " " BufferedReader " och " scanner . " Dessa objekt hanterar öppna och läsa från en fil . Ändra " FileReader " linje att spegla namn och plats för din egen fil . Fångsten blocket instruerar Java för att mata ut ett standard meddelande om programmet genererar ett undantag .
3
Skapa en loop i ert program att fortsätta köra medan filen har innehållet att läsa . Lägg till följande kod i din try-blocket :
samtidigt ( scan.hasNext ( ) ) { //process varje rad här } scan.close ( ) ;
Detta förbereder ditt program för att bearbeta innehållet i filen i en while-slinga . När while loopen slutar köra , vilket kommer att bli så snart som det inte finns någonting kvar i filen för att skanna , kommer while-slingan ur , och sedan Scanner kan stänga .
4
Scan varje rad i filen . Inuti din while-slinga , lägg till följande kod för att skanna en linje varje gång slingan exekverar :
String thisLine = scan.nextLine ( ) ;
Varje gång slingan exekverar , programmet kommer läs nästa rad i en String variabel . När du har linjen i ditt program , kan du utföra någon behandling du behöver , inklusive dela upp det i tokens .
5
tokenize din fil linjer . Lägg till följande kod , fortfarande inne i while-loopen , efter linjen läser den aktuella raden till en String-variabel :
String [ ] lineTokens = thisLine.split ( " " ) ;
detta exempel delar upp linjen på mellanslag , så att varje element i arrayen kommer att innehålla allt som är mellan mellanslag i indatafilen , till exempel enstaka ord . Du kan ändra den här raden för att passa din egen fil . Lägg ytterligare bearbetning du behöver för dina polletter inuti while-slingan . När slingan avslutar verkställande , kommer din token inte längre tillgängliga .