Berbagai cara membaca file di java 1. Membaca konten file dengan berbagai cara.
1. Baca konten file berdasarkan byte
2. Membaca konten file berdasarkan karakter
3. Baca isi file baris demi baris
4. Membaca isi file secara acak
*/
impor java.io.BufferedReader;
impor java.io.File;
impor java.io.FileInputStream;
impor java.io.FileReader;
impor java.io.IOException;
impor java.io.InputStream;
impor java.io.InputStreamReader;
impor java.io.RandomAccessFile;
impor java.io.Reader;
kelas publik ReadFromFile {
/**
* Membaca file dalam byte, sering digunakan untuk membaca file biner, seperti gambar, suara, gambar, dll.
* @param fileName Nama file
*/
public static void readFileByBytes(String nama file){
File file = File baru (Nama file);
InputStream di = null;
mencoba {
System.out.println("Baca isi file dalam byte, satu byte pada satu waktu:");
//Baca satu byte dalam satu waktu
di = FileInputStream baru(file);
int tempbyte;
while((tempbyte=dalam.baca()) != -1){
Sistem.keluar.tulis(tempbyte);
}
melampirkan();
} tangkapan (IOException e) {
e.printStackTrace();
kembali;
}
mencoba {
System.out.println("Baca konten file dalam byte, beberapa byte sekaligus:");
//Membaca beberapa byte sekaligus
byte[] tempbyte = byte baru[100];
int bytebaca = 0;
di = new FileInputStream(namafile);
ReadFromFile.showAvailableBytes(dalam);
//Membaca beberapa byte ke dalam array byte, byteread adalah jumlah byte yang dibaca sekaligus
while ((byteread = in.read(tempbytes)) != -1){
System.out.write(tempbytes, 0, byteread);
}
} tangkapan (Pengecualian e1) {
e1.printStackTrace();
} Akhirnya {
jika (dalam != nol){
mencoba {
melampirkan();
} tangkapan (IOException e1) {
}
}
}
}
/**
* Membaca file dalam satuan karakter, sering digunakan untuk membaca teks, angka, dan jenis file lainnya
* @param nama file nama file
*/
public static void readFileByChars(String nama file){
File file = File baru (Nama file);
Pembaca pembaca = null;
mencoba {
System.out.println("Baca isi file dalam satuan karakter, satu byte pada satu waktu:");
//Baca satu karakter dalam satu waktu
pembaca = InputStreamReader baru(FileInputStream(file) baru);
int tempchar;
while ((tempchar = pembaca.baca()) != -1){
//Untuk Windows, ketika dua karakter rn digabungkan, keduanya mewakili baris baru.
//Tetapi jika kedua karakter ini ditampilkan secara terpisah, garisnya akan diubah dua kali.
//Oleh karena itu, lindungi r, atau lindungi n. Jika tidak, akan ada banyak baris kosong.
jika (((char)tempchar) != 'r'){
Sistem.keluar.cetak((char)tempchar);
}
}
pembaca.close();
} tangkapan (Pengecualian e) {
e.printStackTrace();
}
mencoba {
System.out.println("Baca konten file dalam satuan karakter, beberapa byte sekaligus:");
//Baca banyak karakter sekaligus
char[] tempchars = char baru[30];
int charread = 0;
pembaca = InputStreamReader baru(FileInputStream baru(Namafile));
//Membaca beberapa karakter ke dalam array karakter, charread adalah jumlah karakter yang dibaca dalam satu waktu
while ((charread = reader.read(tempchars))!=-1){
//Demikian pula melindungi r agar tidak ditampilkan
if ((charread == tempchars.length)&&(tempchars[tempchars.length-1] != 'r')){
System.out.print(tempchars);
}kalau tidak{
untuk (int i=0; i<charread; i++){
if(tempchars[i] == 'r'){
melanjutkan;
}kalau tidak{
Sistem.keluar.cetak(tempchars[i]);
}
}
}
}
} tangkapan (Pengecualian e1) {
e1.printStackTrace();
}Akhirnya {
jika (pembaca != null){
mencoba {
pembaca.close();
} tangkapan (IOException e1) {
}
}
}
}
/**
* Membaca file dalam satuan baris, sering digunakan untuk membaca file berformat berorientasi garis
* @param nama file nama file
*/
public static void readFileByLines(String nama file){
File file = File baru (Nama file);
Pembaca BufferedReader = null;
mencoba {
System.out.println("Baca isi file dalam satuan baris, baca seluruh baris sekaligus:");
pembaca = BufferedReader baru(FileReader baru(file));
String tempString = nol;
int baris = 1;
//Baca satu baris pada satu waktu hingga null dibaca sebagai akhir file
while ((tempString = pembaca.readLine()) != null){
//menampilkan nomor baris
System.out.println("baris " + baris + ": " + tempString);
baris++;
}
pembaca.close();
} tangkapan (IOException e) {
e.printStackTrace();
} Akhirnya {
jika (pembaca != null){
mencoba {
pembaca.close();
} tangkapan (IOException e1) {
}
}
}
}
/**
* Membaca isi file secara acak
* @param nama file nama file
*/
public static void readFileByRandomAccess(String nama file){
RandomAccessFile randomFile = null;
mencoba {
System.out.println("Baca isi file secara acak:");
// Buka aliran file akses acak dalam mode baca-saja
randomFile = new RandomAccessFile(Namafile, "r");
//Panjang file, jumlah byte
panjang fileLength = randomFile.length();
//Baca posisi awal file
int mulaiIndex = (Panjang file > 4) ?
//Pindahkan posisi awal file yang dibaca ke posisi startIndex.
randomFile.seek(beginIndex);
byte[] byte = byte baru[10];
int bytebaca = 0;
//Baca 10 byte sekaligus. Jika konten file kurang dari 10 byte, baca byte sisanya.
//Menetapkan jumlah byte yang dibaca sekaligus ke byteread
while ((byteread = randomFile.read(byte)) != -1){
System.out.write(byte, 0, byteread);
}
} tangkapan (IOException e){
e.printStackTrace();
} Akhirnya {
jika (File acak!= null){
mencoba {
randomFile.close();
} tangkapan (IOException e1) {
}
}
}
}
/**
* Menampilkan jumlah byte yang tersisa di aliran input
* @param masuk
*/
private static void showAvailableBytes(InputStream masuk){
mencoba {
System.out.println("Jumlah byte dalam aliran input byte saat ini adalah:" + in.available());
} tangkapan (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Stringnamafile = "C:/temp/newTemp.txt";
ReadFromFile.readFileByBytes(namafile);
ReadFromFile.readFileByChars(namafile);
ReadFromFile.readFileByLines(namafile);
ReadFromFile.readFileByRandomAccess(namafile);
}
}
2. Tambahkan konten ke akhir file
impor java.io.FileWriter;
impor java.io.IOException;
impor java.io.RandomAccessFile;
/**
* Tambahkan konten ke akhir file
*/
kelas publik AppendToFile {
/**
*Metode untuk menambahkan file: gunakan RandomAccessFile
* @param nama file nama file
* @param konten konten tambahan
*/
public static void appendMethodA(String nama file,
Konten string){
mencoba {
// Buka aliran file akses acak, dalam mode baca dan tulis
RandomAccessFile randomFile = new RandomAccessFile(Namafile, "rw");
//Panjang file, jumlah byte
panjang fileLength = randomFile.length();
//Pindahkan penunjuk file tulis ke akhir file.
randomFile.seek(panjang file);
randomFile.writeBytes(konten);
randomFile.close();
} tangkapan (IOException e){
e.printStackTrace();
}
}
/**
* Metode B untuk menambahkan file: gunakan FileWriter
* @paramnamafile
* @param konten
*/
public static void appendMethodB(String nama file, konten String){
mencoba {
//Buka penulis file. Parameter kedua true di konstruktor berarti menulis file dalam bentuk tambahan.
Penulis FileWriter = FileWriter baru (Nama file, benar);
penulis.tulis(konten);
penulis.close();
} tangkapan (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
String nama file = "C:/temp/newTemp.txt";
String content = "tambahan baru!";
//Tambahkan file sesuai dengan metode A
AppendToFile.appendMethodA(nama file, konten);
AppendToFile.appendMethodA(fileName, "tambahkan akhir.n");
//Menampilkan konten file
ReadFromFile.readFileByLines(namafile);
//Tambahkan file sesuai dengan metode B
AppendToFile.appendMethodB(Namafile, konten);
AppendToFile.appendMethodB(fileName, "tambahkan akhir.n");
//Menampilkan konten file
ReadFromFile.readFileByLines(namafile);
}
}