Input dan Output ke text file
part 1
Program 1:
Menulis string ke file
import java.io.*;
class TulisKeFile
{
public static void main(String args[])
{
FileOutputStream out; // declare a file output object
PrintStream
p; // declare a print stream object
try
{
// Create a
new file output stream
//
connected to "myfile.txt"
out = new
FileOutputStream("myfile.txt");
// Connect
print stream to the output stream
p = new
PrintStream( out );
p.println
("ini string yang ditulis ke file");
p.close();
}
catch
(Exception e)
{
System.err.println ("Error writing to file");
}
System.out.println("Tulis ke file OK");
}
}
Yang kedua, program untuk baca hasil program di atas
import java.io.*;
class BacaStringDariFile
{
public static void main(String args[])
{
try
{
FileInputStream fstream = new FileInputStream("myfile.txt");
DataInputStream dataInput = new DataInputStream(fstream);
while (dataInput.available() !=0)
{
String data=dataInput.readLine();
System.out.println (data);
}
dataInput.close();
}
catch (Exception e)
{
System.err.println("File input error");
}
}
}
--------------------------------------------------------------------------------------------------------------------------------------
Ketik data
berikut dengan Notepad (ada 7 baris) save di c:\hargabuncis.txt
25
25
30
30
32
31
24
dan ini
program untuk menampilkan harga buncis dan menghitung rata-rata harga buncisnya
import java.io.*;
class HargaBuncis
{
public static void main(String args[])
{
String x;
int harga=0,jumlah=0,n=0; // coba kalau int harga,jumlah,n;
try
{
FileInputStream fstream = new FileInputStream("c:/hargabuncis.txt");
DataInputStream dataInput = new DataInputStream(fstream);
while (dataInput.available() !=0)
{
x=dataInput.readLine();
harga=Integer.parseInt(x);
n=n+1;
jumlah=jumlah+harga;
System.out.println ("Harga Buncis hari ke "+n+" "+harga);
}
dataInput.close();
}
catch (Exception e)
{
System.err.println("File input error");
}
double rata2=(double) jumlah/n;
// coba kalau pakai double rata2=jumlah/n; hasilnya spt apa?
System.out.println ("Harga Buncis rata-rata "+rata2);
}
}
ini hasilnya
Harga Buncis hari ke 1
90
Harga Buncis hari ke 2
80
Harga Buncis hari ke 3
70
Harga Buncis hari ke 4
90
Harga Buncis hari ke 5
100
Harga Buncis hari ke 6
70
Harga Buncis hari ke 7
60
Harga Buncis hari ke 8 80
Harga Buncis hari ke 9 50
Harga Buncis hari ke 10 90
Harga Buncis rata-rata 78.0
Mencari nilai rata-rata,
maksimum, dan minimum tanpa menggunakan Array
import java.io.*;
class TanpaArray
{ public static void main(String[] args)
{ int max=Integer.MIN_VALUE;
int min=Integer.MAX_VALUE;
int n=1, x, jml=0;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Masukkan data ke-"+n+" : ");
try
{ while((x=Integer.parseInt(br.readLine()))!=0)
{ if(x>max) max=x;
if(x<min) min=x;
jml+=x;
System.out.println("Masukkan angka ke-"+(++n)+
" [ketik 0 untuk STOP] :");
}
} catch(Exception e)
{
}
double rata2=(double) jml/(n-1);
System.out.println("Total : "+jml);
System.out.println("Rata-rata : "+rata2);
System.out.println("Angka terkecil : "+min);
System.out.println("Angka terbesar : "+max);
}
}
proses text file (File I/O
part III)
import java.io.*;
class HitungNilai
{
public static void main(String[] args)
{ String str;
int tgs,uts,uas;
double nilai;
try
{ FileReader fr = new FileReader("c:/testdata.txt");
BufferedReader br = new BufferedReader(fr);
while((str=br.readLine()) != null)
{ tgs = Integer.parseInt(str.substring(1,3));
uts = Integer.parseInt(str.substring(4,6));
uas = Integer.parseInt(str.substring(7,9));
nilai=(20*tgs+30*uts+50*uas)/100.0;
// tambahin di sini untuk konversi jadi nilai huruf
System.out.printf(" tugas %d uts % d uas %d "+
" nilai %7.2f\n",tgs,uts,uas,nilai);
}
br.close();
} catch(IOException e)
{ System.err.println("File read error");
}
}
}
substring
misal untuk string st yg isinya "Jalan Merdeka"
st.substring(1,5) --> "Jalan"
st.substring(7,9) --> "Mer"
ini hasilnya (inputnya tebak sendiri dah)
misal untuk string st yg isinya "Jalan Merdeka"
st.substring(1,5) --> "Jalan"
st.substring(7,9) --> "Mer"
ini hasilnya (inputnya tebak sendiri dah)
tugas 80 uts
70 uas 65 nilai 69,50
tugas 75 uts
60 uas 80 nilai 73,00
tugas 85 uts
70 uas 95 nilai 85,50
tugas 65 uts
55 uas 65 nilai 62,00
tugas 90 uts
95 uas 85 nilai 89,00
tugas 80 uts
80 uas 75 nilai 77,50
Input dan Output ke Text File
part II
Pembahasan
kali ini mirip dengan pembahasan sebelumnya. Hanya saja kali ini kita akan
menggunakan class berbeda dari sebelumnya, walaupun tujuannya sama, yaitu class
FileWriter untuk membuat/membuka file text, class BufferedWriter untuk menulis
string ke dalam file text, class FileReader untuk membaca file text, dan
BufferedReader untuk membaca string pada file text.
versi satu
import java.io.*;
import java.util.Random;
class TulisBacaFile
{
static void tulisKeFile(String note)
{ FileWriter fw;
BufferedWriter bw = null;
try
{ fw = new FileWriter(note);
bw = new BufferedWriter(fw);
Random r = new Random();
int x=0;
String str=null;
for(int i=0;i<5;i++)
{ x = r.nextInt(30)+10;
str = Integer.toString(x);
bw.write(str+"\r\n");
//bw.newLine();
}
str = Integer.toString(x+5);
bw.write(str);
} catch(IOException e)
{ System.err.println("File writing error");
} finally
{ try
{ if(bw != null)
{ bw.flush();
bw.close();
}
} catch(IOException e)
{ System.err.println(e);
}
}
}
static void bacaFile(String note)
{ String str;
int x, jml=0, n=0;
try
{ FileReader fr = new FileReader(note);
BufferedReader br = new BufferedReader(fr);
while((str=br.readLine()) != null)
{ x = Integer.parseInt(str);
System.out.println(x);
jml+=x;
n++;
}
br.close();
} catch(IOException e)
{ System.err.println("File read error");
}
double rata = (double) jml/n;
System.out.println("Jumlah : "+jml+"\nRata-rata : "+rata);
}
public static void main(String[] args)
{ tulisKeFile("coba1.txt");
bacaFile("coba1.txt");
}
}
versi dua
import java.io.*;
import java.util.Random;
class TxtIO
{ public static void main(String[] args)
{ new TxtIO().tulisKeFile("coba1.txt");
new TxtIO().bacaFile("coba1.txt");
}
void tulisKeFile(String note)
{ FileWriter fw;
BufferedWriter bw = null;
try
{ fw = new FileWriter(note);
bw = new BufferedWriter(fw);
Random r = new Random();
int x=0;
String str=null;
for(int i=0;i<5;i++)
{ x = r.nextInt(30)+10;
str = Integer.toString(x);
bw.write(str+"\r\n");
//bw.newLine();
}
str = Integer.toString(x+5);
bw.write(str);
} catch(IOException e)
{ System.err.println("File writing error");
} finally
{ try
{ if(bw != null)
{ bw.flush();
bw.close();
}
} catch(IOException e)
{ System.err.println(e);
}
}
}
void bacaFile(String note)
{ String str;
int x, jml=0, n=0;
try
{ FileReader fr = new FileReader(note);
BufferedReader br = new BufferedReader(fr);
while((str=br.readLine()) != null)
{ x = Integer.parseInt(str);
System.out.println(x);
jml+=x;
n++;
}
br.close();
} catch(IOException e)
{ System.err.println("File read error");
}
double rata = (double) jml/n;
System.out.println("Jumlah : "+jml+"\nRata-rata : "+rata);
}
}
Versi
sederhana
import java.io.*;
class TulisBacaFile
{
public static void main(String[] args)
{
String str;
FileWriter fw;
BufferedWriter bw;
try
{ fw = new FileWriter("coba2.txt");
bw = new BufferedWriter(fw);
bw.write("baris kesatu"+"\r\n");
bw.write("baris kedua"+"\r\n");
bw.write("baris ketiga\r\n");
bw.write("baris keempat\r\n");
bw.flush();
bw.close();
} catch(IOException e)
{ System.err.println("Kesalahan pada penulisan text ke File");
}
FileReader fr;
BufferedReader br;
try
{
fr = new FileReader("coba2.txt");
br = new BufferedReader(fr);
while((str=br.readLine()) != null)
{
System.out.println(str);
}
br.close();
} catch(IOException e)
{ System.err.println("Kesalahan pada pembacaan file text");
}
}
}
hasil yang tampil di layar:
baris kesatu
baris kedua
baris ketiga
baris keempat
Tidak ada komentar:
Posting Komentar