KodeGym/Blog Jawa/Acak/Kelas PrintStream Jawa
John Squirrels
tingkat
San Francisco

Kelas PrintStream Jawa

Diterbitake ing grup
Hi! Dina iki kita bakal ngomong babagan kelas Java PrintStream lan kabeh sing bisa ditindakake. Bener, sampeyan wis ngerti rong cara saka kelas PrintStream . Padha print () lan println () , sing mbokmenawa sampeyan nggunakake saben dina :) Amarga System.out variabel minangka obyek PrintStream , sampeyan nelpon salah siji saka cara kelas iki nalika sampeyan nelpon System.out.println () .  Tujuan umum saka kelas PrintStream yaiku kanggo ngirim informasi menyang sawetara stream. Napa kita butuh kelas PrintStream - 1Kelas iki nduweni sawetara konstruktor. Ing ngisor iki sawetara sing paling umum digunakake:
  • PrintStream(OutputStream outputStream)
  • PrintStream (File outputFile) mbuwang FileNotFoundException
  • PrintStream(String outputFileName) mbuwang FileNotFoundException
Contone, kita bisa ngirim jeneng file output menyang konstruktor PrintStream . Utawa, kita bisa ngliwati obyek File . Ayo goleki sawetara conto kanggo ndeleng cara kerjane:
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintStream;

public class Main {

   public static void main(String arr[]) throws FileNotFoundException
   {
       PrintStream filePrintStream = new PrintStream(new File("C:\\Users\\Username\\Desktop\\test.txt"));

       filePrintStream.println(222);
       filePrintStream.println("Hello world");
       filePrintStream.println(false);

   }
}
Kode iki bakal nggawe file test.txt ing desktop (yen durung ana) lan nulis nomer, string, lan boolean kanthi urut. Ing ngisor iki isi file sawise kita mbukak program:
222
Hello world!
false
Kaya sing kasebut ing ndhuwur, sampeyan ora kudu ngliwati obyek File . Cukup mung ngliwati path file menyang konstruktor:
import java.io.FileNotFoundException;
import java.io.PrintStream;

public class Main {

   public static void main(String arr[]) throws FileNotFoundException
   {
       PrintStream filePrintStream = new PrintStream("C:\\Users\\Username\\Desktop\\test.txt");

       filePrintStream.println(222);
       filePrintStream.println("Hello world");
       filePrintStream.println(false);
   }
}
Kode iki padha karo kode sadurunge. Cara liyane sing menarik sing kudu digatekake yaiku printf() , sing ngasilake output adhedhasar string format. Apa "format string"? Ayo kula menehi conto:
import java.io.IOException;
import java.io.PrintStream;

public class Main {

   public static void main(String[] args) throws IOException {

       PrintStream printStream = new PrintStream("C:\\Users\\Steve\\Desktop\\test.txt");

       printStream.println("Hello!");
       printStream.println("I'm a robot!");

       printStream.printf("My name is %s. I am %d!", "Amigo", 18);

       printStream.close();
   }
}
Ing kene, tinimbang nyatakake kanthi jelas jeneng lan umur robot kita ing string, kita sijine placeholder kanggo informasi iki, diwakili dening %s lan %d . Lan kita pass minangka bantahan data sing bakal ngganti mau. Ing kasus kita, iki string " Amigo "lan nomer 18. Kita bisa nggawe placeholder liyane, ngomong %b , lan pass argumen liyane. Napa kita butuh iki? Ndhuwur kabeh, kanggo keluwesan luwih. Yen program mbutuhake sampeyan asring nampilake pesen sambutan, sampeyan kudu ngetik kanthi manual teks sing dibutuhake kanggo saben robot anyar. Sampeyan ora bisa nggawe teks iki tetep, amarga saben wong duwe jeneng lan umur sing beda-beda! Nanging nggunakake cara anyar iki, sampeyan bisa ngisolasi Salam ing pancet lan, yen perlu, mung ngganti bantahan liwati menyang printf () cara.
import java.io.IOException;
import java.io.PrintStream;

public class Main {

   private static final String GREETINGS_MESSAGE = "My name is %s. I am %d!";

   public static void main(String[] args) throws IOException {

       PrintStream printStream = new PrintStream("C:\\Users\\Steve\\Desktop\\test.txt");

       printStream.println("Hello!");
       printStream.println("We are robots!");


       printStream.printf(GREETINGS_MESSAGE, "Amigo", 18);
       printStream.printf(GREETINGS_MESSAGE, "R2-D2", 35);
       printStream.printf(GREETINGS_MESSAGE, "C-3PO", 35);

       printStream.close();
   }
}

Ngganti System.in

Ing wulangan iki, kita bakal "nglawan sistem" lan sinau carane ngganti variabel System.in supaya bisa ngarahake output sistem menyang ngendi wae. Sampeyan bisa uga lali apa System.in , nanging ora ana siswa CodeGym sing bakal lali babagan konstruksi iki:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.in  (kaya System.out ) punika variabel statis saka kelas System . Nanging ora kaya System.out , referensi kelas liyane, yaiku InputStream . Kanthi gawan, System.in minangka stream sing maca data saka piranti sistem - keyboard. Nanging, kaya karo System.out , kita bisa ngganti keyboard minangka sumber data. Kita bisa maca data saka ngendi wae sing dikarepake! Ayo katon ing conto:
import java.io.*;

public class Main {

   public static void main(String[] args) throws IOException {

       String greetings = "Hi! My name is Amigo!\nI'm learning Java on the CodeGym website.\nOne day I will become a cool programmer!\n";
       byte[] bytes = greetings.getBytes();

       InputStream inputStream = new ByteArrayInputStream(bytes);

       System.setIn(inputStream);

       BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

       String str;

       while ((str = reader.readLine())!= null) {

           System.out.println(str);
       }

   }
}
Dadi apa sing kita lakoni? System.in biasane kaiket ing keyboard. Nanging kita ora pengin maca data saka keyboard: ayo data diwaca saka senar biasa! Kita nggawe senar lan entuk minangka array byte. Napa kita butuh bita? Bab iku InputStream minangka kelas abstrak, mula kita ora bisa nggawe conto langsung. Kita kudu milih salah siji saka turunane. Contone, kita bisa milih ByteArrayInputStream . Iku prasaja, lan jenenge mung ngandhani cara kerjane: sumber data yaiku array byte. Supaya kita nggawe array byte lan ngirim menyang konstruktor stream kita sing bakal maca data. Lan saiki kabeh wis siyap! Saiki kita mung kudu nggunakake System.setIn ()metode kanggo nyetel nilai variabel kanthi eksplisit . Kanthi metu , sampeyan bakal kelingan, iku uga ora bisa kanggo nyetel Nilai variabel langsung: kita kudu nggunakake cara setOut () . Sawise kita nemtokake InputStream menyang variabel System.in , kita pengin mriksa apa kita wis entuk tujuane. BufferedReader kanca lawas kita teka ing kene. Biasane, kode iki bakal mbukak console ing IntelliJ IDEA banjur maca data sing sampeyan lebokake saka keyboard.
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

       String str;

       while ((str = reader.readLine())!= null) {

           System.out.println(str);
       }
Nanging saiki yen sampeyan mbukak, sampeyan bakal weruh yen string kita mung ditampilake ing console. Ora ana maca saka keyboard. Kita ngganti sumber data. Iku ora maneh keyboard, nanging string kita! Iku sing prasaja :) Ing wulangan dina iki, kita kudu ngerti kelas anyar lan njelajah hack anyar cilik kanggo nggarap I / O. Saiki wektune bali menyang kursus lan ngrampungake sawetara tugas :) Sampai ketemu ing pelajaran sabanjure!
Komentar
  • Popular
  • Anyar
  • lawas
Sampeyan kudu mlebu kanggo ninggalake komentar
Kaca iki durung duwe komentar