Program Java do zapisu do pliku
W tym artykule zobaczymy różne sposoby zapisywania do pliku przy użyciu języka programowania Java. Klasa Java FileWriter w Javie służy do zapisywania danych znakowych w pliku, ponieważ ta klasa jest klasą znakową ze względu na to, czego używa się do obsługi plików w Javie.
Jest wiele sposoby zapisu do pliku w Javie ponieważ istnieje wiele klas i metod, które mogą spełnić następujący cel:
- Za pomocą napiszString() metoda
- Korzystanie z klasy FileWriter
- Korzystanie z klasy BufferedWriter
- Korzystanie z klasy FileOutputStream
Metoda 1: Użycie metody writeString().
Ta metoda jest obsługiwana przez wersję Java 11. Ta metoda może przyjmować cztery parametry. Są to ścieżka pliku, sekwencja znaków, zestaw znaków i opcje. Pierwsze dwa parametry są obowiązkowe, aby ta metoda mogła zapisać w pliku. Zapisuje znaki jako zawartość pliku. Zwraca ścieżkę pliku i może zgłosić cztery typy wyjątków. Lepiej jest używać, gdy zawartość pliku jest krótka.
Przykład: Pokazuje użycie napiszString() metoda znajdująca się w klasie Files w celu zapisania danych do pliku. Inna klasa, Path, służy do przypisania nazwie pliku ścieżki, w której zostanie zapisana treść. Klasa Files ma inną metodę o nazwie przeczytajString() odczytać zawartość dowolnego istniejącego pliku użytego w kodzie, aby sprawdzić, czy zawartość jest poprawnie zapisana w pliku.
Jawa
// Java Program to Write Into a File> // using writeString() Method> // Importing required classes> import> java.io.IOException;> import> java.nio.file.Files;> import> java.nio.file.Path;> // Main class> public> class> GFG {> > // Main driver method> > public> static> void> main(String[] args)> > throws> IOException> > {> > // Assigning the content of the file> > String text> > => 'Welcome to geekforgeeks
Happy Learning!'> ;> > // Defining the file name of the file> > Path fileName = Path.of(> > '/Users/mayanksolanki/Desktop/demo.docx'> );> > // Writing into the file> > Files.writeString(fileName, text);> > // Reading the content of the file> > String file_content = Files.readString(fileName);> > // Printing the content inside the file> > System.out.println(file_content);> > }> }> |
Wyjście
Welcome to geekforgeeks Happy Learning!
Metoda 2: Użycie klasy FileWriter
Jeśli zawartość pliku jest krótka, kolejną lepszą opcją jest użycie klasy FileWriter do zapisu w pliku. Zapisuje także strumień znaków jako zawartość pliku, podobnie jak metoda writeString(). Konstruktor tej klasy definiuje domyślne kodowanie znaków i domyślny rozmiar bufora w bajtach.
Poniższy przykład ilustruje użycie klasy FileWriter do zapisu treści do pliku. Wymaga utworzenia obiektu klasy FileWriter z nazwą pliku w celu zapisu do pliku. Następnie metoda write() służy do zapisania wartości zmiennej tekstowej w pliku. Jeśli w czasie zapisywania pliku wystąpi jakikolwiek błąd, zostanie zgłoszony wyjątek IOException, a komunikat o błędzie zostanie wydrukowany z bloku catch.
Przykład:
Jawa
// Java Program to Write into a File> // using FileWriterClass> // Importing required classes> import> java.io.FileWriter;> import> java.io.IOException;> // Main class> public> class> GFG {> > // Main driver method> > public> static> void> main(String[] args)> > {> > // Content to be assigned to a file> > // Custom input just for illustration purposes> > String text> > => 'Computer Science Portal techcodeview.com'> ;> > // Try block to check if exception occurs> > try> {> > // Create a FileWriter object> > // to write in the file> > FileWriter fWriter => new> FileWriter(> > '/Users/mayanksolanki/Desktop/demo.docx'> );> > // Writing into file> > // Note: The content taken above inside the> > // string> > fWriter.write(text);> > // Printing the contents of a file> > System.out.println(text);> > // Closing the file writing connection> > fWriter.close();> > // Display message for successful execution of> > // program on the console> > System.out.println(> > 'File is created successfully with the content.'> );> > }> > // Catch block to handle if exception occurs> > catch> (IOException e) {> > // Print the exception> > System.out.print(e.getMessage());> > }> > }> }> |
Wyjście
File is created successfully with the content.
Metoda 3: Korzystanie z klasy BufferedWriter
Służy do zapisywania tekstu w strumieniu wyjściowym znaków. Ma domyślny rozmiar bufora, ale można przypisać większy rozmiar bufora. Jest przydatny do pisania znaków, ciągów i tablic. Lepiej jest owinąć tę klasę dowolną klasą piszącą w celu zapisania danych do pliku, jeśli nie jest wymagane monitowanie danych wyjściowych.
Przykład:
Jawa
// Java Program to write into a File> // Using BufferedWriter Class> // Importing java input output libraries> import> java.io.BufferedWriter;> import> java.io.FileWriter;> import> java.io.IOException;> // Main class> public> class> GFG {> > // Main driver method> > public> static> void> main(String[] args)> > {> > // Assigning the file content> > // Note: Custom contents taken as input to> > // illustrate> > String text> > => 'Computer Science Portal techcodeview.com'> ;> > // Try block to check for exceptions> > try> {> > // Step 1: Create an object of BufferedWriter> > BufferedWriter f_writer> > => new> BufferedWriter(> new> FileWriter(> > '/Users/mayanksolanki/Desktop/demo.docx'> ));> > // Step 2: Write text(content) to file> > f_writer.write(text);> > // Step 3: Printing the content inside the file> > // on the terminal/CMD> > System.out.print(text);> > // Step 4: Display message showcasing> > // successful execution of the program> > System.out.print(> > 'File is created successfully with the content.'> );> > // Step 5: Close the BufferedWriter object> > f_writer.close();> > }> > // Catch block to handle if exceptions occurs> > catch> (IOException e) {> > // Print the exception on console> > // using getMessage() method> > System.out.print(e.getMessage());> > }> > }> }> |
Wyjście
File is created successfully with the content.
Poniższy przykład ilustruje użycie klasy BufferedWriter do zapisu do pliku. Wymaga również utworzenia obiektu klasy BufferedWriter, takiego jak FileWriter, aby zapisać zawartość w pliku. Ale ta klasa obsługuje dużą zawartość do zapisania w pliku przy użyciu dużego rozmiaru bufora.
Metoda 4: Korzystanie z klasy FileOutputStream
Służy do zapisywania surowych danych strumieniowych do pliku. Klasy FileWriter i BufferedWriter służą do zapisywania tylko tekstu do pliku, ale dane binarne można zapisać przy użyciu klasy FileOutputStream.
Zapisywanie danych do pliku przy użyciu klasy FileOutputStream pokazano w poniższym przykładzie. Wymaga również utworzenia obiektu klasy z nazwą pliku w celu zapisania danych do pliku. W tym przypadku zawartość ciągu jest konwertowana na tablicę bajtów zapisaną w pliku przy użyciu metody pisać() metoda.
Przykład:
Jawa
// Java Program to Write into a File> // using FileOutputStream Class> // Importing java input output classes> import> java.io.FileOutputStream;> import> java.io.IOException;> public> class> GFG {> > // Main driver method> > public> static> void> main(String[] args)> > {> > // Assign the file content> > String fileContent => 'Welcome to geeksforgeeks'> ;> > FileOutputStream outputStream => null> ;> > // Try block to check if exception occurs> > try> {> > // Step 1: Create an object of FileOutputStream> > outputStream => new> FileOutputStream(> 'file.txt'> );> > // Step 2: Store byte content from string> > byte> [] strToBytes = fileContent.getBytes();> > // Step 3: Write into the file> > outputStream.write(strToBytes);> > // Print the success message (Optional)> > System.out.print(> > 'File is created successfully with the content.'> );> > }> > // Catch block to handle the exception> > catch> (IOException e) {> > // Display the exception/s> > System.out.print(e.getMessage());> > }> > // finally keyword is used with in try catch block> > // and this code will always execute whether> > // exception occurred or not> > finally> {> > // Step 4: Close the object> > if> (outputStream !=> null> ) {> > // Note: Second try catch block ensures that> > // the file is closed even if an error> > // occurs> > try> {> > // Closing the file connections> > // if no exception has occurred> > outputStream.close();> > }> > catch> (IOException e) {> > // Display exceptions if occurred> > System.out.print(e.getMessage());> > }> > }> > }> > }> }> |
Wyjście
File is created successfully with the content.