Pertanyaan Bagaimana cara membuat file dan menulisnya di Java?


Apa cara paling sederhana untuk membuat dan menulis ke file (teks) di Java?


1130
2018-05-21 19:58


asal


Jawaban:


Perhatikan bahwa masing-masing contoh kode di bawah ini mungkin dibuang IOException. Coba / tangkap / akhirnya blok telah dihilangkan untuk keringkasan. Lihat tutorial ini untuk informasi tentang penanganan pengecualian.

Membuat file teks (perhatikan bahwa ini akan menimpa file jika sudah ada):

PrintWriter writer = new PrintWriter("the-file-name.txt", "UTF-8");
writer.println("The first line");
writer.println("The second line");
writer.close();

Membuat file biner (ini juga akan menimpa file):

byte data[] = ...
FileOutputStream out = new FileOutputStream("the-file-name");
out.write(data);
out.close();

Java 7+ pengguna dapat menggunakan Files kelas untuk menulis ke file:

Membuat file teks:

List<String> lines = Arrays.asList("The first line", "The second line");
Path file = Paths.get("the-file-name.txt");
Files.write(file, lines, Charset.forName("UTF-8"));
//Files.write(file, lines, Charset.forName("UTF-8"), StandardOpenOption.APPEND);

Membuat file biner:

byte data[] = ...
Path file = Paths.get("the-file-name");
Files.write(file, data);
//Files.write(file, data, StandardOpenOption.APPEND);

1454
2018-05-21 20:06



Di Java 7 dan lebih tinggi:

try (Writer writer = new BufferedWriter(new OutputStreamWriter(
              new FileOutputStream("filename.txt"), "utf-8"))) {
   writer.write("something");
}

Ada utilitas yang berguna untuk itu meskipun:

Perhatikan juga bahwa Anda bisa Gunakan FileWriter, tetapi menggunakan pengkodean default, yang sering merupakan ide yang buruk - yang terbaik adalah menentukan pengkodean secara eksplisit.

Di bawah ini adalah jawaban asli, sebelum-ke-Jawa 7


Writer writer = null;

try {
    writer = new BufferedWriter(new OutputStreamWriter(
          new FileOutputStream("filename.txt"), "utf-8"));
    writer.write("Something");
} catch (IOException ex) {
    // Report
} finally {
   try {writer.close();} catch (Exception ex) {/*ignore*/}
}

Lihat juga: Membaca, Menulis, dan Membuat File (termasuk NIO2).


355
2018-05-21 20:09



Jika Anda sudah memiliki konten yang ingin Anda tulis ke file (dan tidak dibuat dengan cepat), java.nio.file.Files Selain itu di Java 7 sebagai bagian dari I / O asli memberikan cara paling sederhana dan paling efisien untuk mencapai tujuan Anda.

Pada dasarnya membuat dan menulis ke file hanya satu baris saja satu metode panggilan sederhana!

Contoh berikut membuat dan menulis ke 6 file berbeda untuk memamerkan cara penggunaannya:

Charset utf8 = StandardCharsets.UTF_8;
List<String> lines = Arrays.asList("1st line", "2nd line");
byte[] data = {1, 2, 3, 4, 5};

try {
    Files.write(Paths.get("file1.bin"), data);
    Files.write(Paths.get("file2.bin"), data,
            StandardOpenOption.CREATE, StandardOpenOption.APPEND);
    Files.write(Paths.get("file3.txt"), "content".getBytes());
    Files.write(Paths.get("file4.txt"), "content".getBytes(utf8));
    Files.write(Paths.get("file5.txt"), lines, utf8);
    Files.write(Paths.get("file6.txt"), lines, utf8,
            StandardOpenOption.CREATE, StandardOpenOption.APPEND);
} catch (IOException e) {
    e.printStackTrace();
}

118
2018-04-22 14:01



public class Program {
    public static void main(String[] args) {
        String text = "Hello world";
        BufferedWriter output = null;
        try {
            File file = new File("example.txt");
            output = new BufferedWriter(new FileWriter(file));
            output.write(text);
        } catch ( IOException e ) {
            e.printStackTrace();
        } finally {
          if ( output != null ) {
            output.close();
          }
        }
    }
}

69
2018-05-21 20:09



Berikut ini contoh kecil program untuk membuat atau menimpa file. Ini adalah versi panjang sehingga dapat dipahami dengan lebih mudah.

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;

public class writer {
    public void writing() {
        try {
            //Whatever the file path is.
            File statText = new File("E:/Java/Reference/bin/images/statsTest.txt");
            FileOutputStream is = new FileOutputStream(statText);
            OutputStreamWriter osw = new OutputStreamWriter(is);    
            Writer w = new BufferedWriter(osw);
            w.write("POTATO!!!");
            w.close();
        } catch (IOException e) {
            System.err.println("Problem writing to the file statsTest.txt");
        }
    }

    public static void main(String[]args) {
        writer write = new writer();
        write.writing();
    }
}

39
2018-04-09 18:05



Menggunakan:

try (Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("myFile.txt"), StandardCharsets.UTF_8))) {
    writer.write("text to write");
} 
catch (IOException ex) {
    // Handle me
}  

Menggunakan try() akan menutup aliran secara otomatis. Versi ini pendek, cepat (buffered) dan memungkinkan memilih encoding.

Fitur ini diperkenalkan di Java 7.


30
2018-04-19 14:35



Cara yang sangat sederhana untuk membuat dan menulis ke file di Java:

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;

public class CreateFiles {

    public static void main(String[] args) {
        try{
            // Create new file
            String content = "This is the content to write into create file";
            String path="D:\\a\\hi.txt";
            File file = new File(path);

            // If file doesn't exists, then create it
            if (!file.exists()) {
                file.createNewFile();
            }

            FileWriter fw = new FileWriter(file.getAbsoluteFile());
            BufferedWriter bw = new BufferedWriter(fw);

            // Write in file
            bw.write(content);

            // Close connection
            bw.close();
        }
        catch(Exception e){
            System.out.println(e);
        }
    }
}

Referensi: File membuat Contoh di java


30
2017-11-19 16:07