Java‎ > ‎

Factorial with File

posted 13 Jun 2011, 14:25 by Muhammad Jazman   [ updated 13 Jul 2012, 00:37 ]
Sebenarnya, ada cara "curang" untuk menghitung faktorial bilangan besar (misal 10000) dengan BigInteger, yaitu menyimpan hasil perhitungan faktorial tertentu ke sebuah file, dan nantinya Anda tinggal membuka file tersebut dan tentu akan mengurangi iterasi perhitungan. Hasil perhitungan faktorial beberapa bilangan yang besar saya redirect ke sebuah file, lalu nanti file tersebut nantinya dapat digunakan untuk membantu perhitungan faktorial di lain waktu.

Load BigInteger from file
    private static String factorialFromFile(String fileName){
        String _s = new String();
        try{
              InputStream is = null;
              BufferedReader br = null;
              is = Faktorial.class.getResourceAsStream(fileName);
              br = new BufferedReader(new InputStreamReader(is));

            _s = br.readLine();

        }catch(java.io.FileNotFoundException e){
            System.out.println(e);
        }catch(java.io.IOException e){
            System.out.println(e);
        }
        return _s;
    }

Apa kelebihan dengan metode ini?

Awalnya, saya menggunakan 

DataInputStream din = new DataInputStream(
new BufferedInputStream(
new FileInputStream(fileName)));
_s = din.readLine();

Namun, saat dijadikan file JAR, fileName nya tidak bisa dipanggil.

Akhirnya, setelah merenung di sini:

saya mengubah empat baris di atas menjadi 

              InputStream is = null;
              BufferedReader br = null;
              is = Faktorial.class.getResourceAsStream(fileName);
              br = new BufferedReader(new InputStreamReader(is));

            _s = br.readLine();

Create JAR

C:\DATA\Java\ALG1\File Management\FaktorialWithFile>jar cfe Faktorial.jar Faktorial Faktorial.class *.txt
Maksud perintah ini adalah kita membuat sebuah JAR dengan nama Faktorial.jar, dengan kelas utamanya adalah Faktorial dan class yang dimasukkan adalah Faktorial.class (Anda dapat menggunakan *.class disini) dan juga saya tambahkan file *.txt, sebagai "basis-data-ecek-ecek"

Test 

C:\>java -jar "C:\DATA\Java\ALG1\File Management\FaktorialWithFile\Faktorial.jar" 10000
Ini saya lakukan karena file jar nya ada di direktori tersebut. Jika Anda mensave nya ke C:, maka Anda dapat mencobanya langsung dengan

C:\>java -jar Faktorial.jar 10000

Please download source code and jar file ... 

Anda dapat mengekstrak file jar tersebut untuk melihat file *.txt nya
ċ
Faktorial.jar
(1386k)
Muhammad Jazman,
13 Jun 2011, 15:07
ċ
Faktorial.java
(5k)
Muhammad Jazman,
13 Jun 2011, 15:07
Comments