Skapa och skriva data till en fil i Java kan vara en aning mot intuitivt aktiviteten sedan bildandet av den inbyggda Java File -objekt inte faktiskt skriva en fil på hårddisken . Men som ofta är fallet i programmering bör du behöver bara utföra uppgiften en gång . I det här fallet kommer du att bygga en FileFactory klass som automatiserar filer och skriva
Du behöver : .
Java 5
. 0.
Textredigerare .
1 .
Skapa FileFactory klassen antingen med din Java IDE eller genom att skapa en ren textfil med . java förlängning .
2 .
Lägg dessa importprogramsatser att lägga till några extra funktioner från Java standard biblioteket .
import java. io. File ;
import java. io. FileWriter ;
import java. io. PrintWriter ;
import java. io. IOException ,
import java. util. ArrayList ;
Fil kommer att ge dig de verktyg du behöver för att skapa och arbeta med filer . FileWriter och PrintWriter kommer att ge dig de funktioner du behöver för att skriva data till filer . IOException gör det möjligt för FileFactory klassen för att hantera input /output fel som kan bli följden av att försöka skriva till obefintliga mappar eller partitioner . Slutligen kommer ArrayList användas för att hålla en array av strängar som ska skrivas in i filen .
3 .
skapar klassen genom att lägga till följande kod till din fil under import uttalanden .
/**
* Denna klass skapar en fil .
* @ author Kevin Walker
* /
public class FileFactory {
//Allt kommer att gå här .
}
4 .
Skapa producera metoden och dess Javadoc kommentarer . Detta kommer att vara den enda metod för din FileFactory klass , förutom testmetod .
klistra in följande i din klass .
/**
* Detta skapar en fil på hårddisken (om den inte redan finns ) .
* Nästa , det skriver den givna strängar till filen .
* Om filen redan finns , anger alternativet Bifoga om att
* skriva över den befintliga filen med den nya dataor appened de nya data till den .
*
* @ param innehåll En ArrayList av strängar att skriva till filen .
*
* @ param SÖKVÄG sökvägen till användning .
*
* @ param lägga Huruvida eller inte att bifoga en befintlig fil .
* True bifoga .
* Falska skriva över .
*
* @ return handtaget på filen som skrevs till .
*
* @ kastar IOException Filen kunde inte skapas ,
* troligen på grund av ett ogiltigt filnamn .
*
* @ kastar SecurityException Operationen var förhindrad av säkerhetsskäl.
* Mest troligt är att användaren kör det här programmet inte har
* skrivrättigheter till filen eller mappen som anges .
*
* /
offentliga Fil producera ( ArrayList
innehåll , String SÖKVÄG , boolean append ) kastar IOException , SecurityException {
//Skapa filen handtaget . Detta skapar inte själva filen på hårddisken
File f=new File ( SÖKVÄG ) .
/*
* Detta skapar filen på hårddisken
* Det gör ingenting om filen redan finns .
* Det är möjligt att detta skulle kunna medföra antingen en IOException eller
* SecurityException fel att kastas .
* /
f. createNewFile () ;
/*
* FileWriter tillhandahåller ett gränssnitt för att skriva data till en fil
* Det första argumentet . berättar den fil att skriva .
* Den andra berättar sin eller inte bifoga eller skriva över data .
* eftersom det är samma som den tillagda argumentet som skickas in i
* klassen , det bara blir passerade längs
* /
FileWriter fut=new FileWriter (f , lägg till) .
/*
* PrintWriter ger dig några fler funktioner för att skriva
* olika typer av data , som heltal , till filer .
* /
PrintWriter vitlinglyra=new PrintWriter ( fut ) ,
/*
* Den här syntaxen var en ny funktion lagts med Java 5,0
* . Det betyder "för varje sträng i innehållet. "
* Om din version av Java är äldre än du
* kanske måste skriva om detta som ett mer traditionellt while-slinga .
* Eller ännu bättre , uppdatera din version av Java
* /
för ( String s : innehåll ) . {
//Skriv strängen till filen.
pout. println ( s) ,
}
/*
* Om du inte spola filen , vissa uppgifter får överlåtas i
* buffert och faktiskt aldrig skrivit
* /
pout. flush ( ) ; !
pout. close ( ) ;
återvända f.
}
5
Skriv ett test huvuduppgift . Detta kommer att ge dig ett snabbt sätt att testa din klass och se till att det fungerar .
/**
* Ett prov för att testa vår klass .
* /
public static void main ( String [ ] args ) {
FileFactory fabriken=new FileFactory () ;
ArrayList Array=new ArrayList ( ) ;
array. add ( "Detta är den första strängen . ");
array. add ( "Detta är den andra strängen . ");
try {
factory. produce ( array , "C : \ datafile. txt " , false ) ; }
catch ( Exception e) {
e. printStackTrace () ; }
}
Kör din nya Java -program och du bör ha en fil med namnet " datafil . txt " i din root C : . katalog som innehåller två strängar