java--打印流&;amp;Properties(五)

      網(wǎng)友投稿 780 2022-05-30

      Java--打印流&Properties(五)

      一、打印流

      思考:如果現(xiàn)在要想完成一個(gè)字符串或者是boolean型或者是字符型的數(shù)據(jù)輸出使用OutputStream是否方便?

      肯定是不方便的,因?yàn)镺utputStream中只能操作字節(jié)數(shù)據(jù),所以其他的數(shù)據(jù)類型很難操作,那么在Java的IO包中為了解決這種問題增加了兩種類:PrintStream、PrintWriter。

      打印流有非常好的打印功能,可以打印任何的數(shù)據(jù)類型。如,整數(shù),小樹,字符串等。

      觀察PrintStream類的構(gòu)造:

      public PrintStream(File file) throws FileNotFoundException

      public PrintStream(OutputStream out)

      雖然PrintStream是OutputStream的子類,但是在實(shí)例化的時(shí)候依然需要一個(gè)OutputStream的對(duì)象。

      PrintWriter和PrintStream都屬于輸出流,分別針對(duì)字符和字節(jié)。

      PrintWriter和PrintStream重載的print()和println()用于多種數(shù)據(jù)類型的輸出。

      print()里的參數(shù)不能為空;println()可以

      PrintWriter和PrintStream輸出操作不拋出異常

      PrintStream調(diào)用println方法有自動(dòng)flush功能;

      二、打印流實(shí)例

      Java5后,PrintStream類多了printf()方法用于格式化輸出操作。但是格式化輸出的時(shí)候必須指定輸出數(shù)據(jù)的類型:

      當(dāng)然你也可以全部使用“%s”來表示所有的數(shù)據(jù)類型

      打印流實(shí)例

      package io;

      import java.io.FileWriter;

      import java.io.IOException;

      import java.io.PrintStream;

      import java.io.PrintWriter;

      public class PrintDemo {

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

      PrintStream ps = new PrintStream("out.txt");

      ps.write('A');

      // ps.print();

      ps.print(false);

      ps.print(true);

      ps.println();

      ps.println("Will");

      ps.println(113);

      ps.println(false);

      ps = System.out;

      System.out.println("");

      PrintWriter pw = new PrintWriter("out2.txt");

      // PrintWriter(Writer out, boolean autoFlush)

      // 與 PrintStream 類不同,如果啟用了自動(dòng)刷新,則只有在調(diào)用 println、printf 或 format

      // 的其中一個(gè)方法時(shí)才可能完成此操作

      //pw = new PrintWriter(new FileWriter("out3.txt"), true);

      pw = new PrintWriter(System.out,true);

      pw.println("呼哈哈哈哈");

      pw.println(false);

      // pw.close();

      }

      }

      打印流格式化輸出

      package io;

      public class PrintfDemo {

      public static void main(String[] args) {

      String name = "Will";

      int age = 17;

      char score = 'A';

      //名字= XX,年齡=xx,分?jǐn)?shù)=xx

      System.out.println("名字=" + name +",年齡=" + age +",分?jǐn)?shù)=" + score);

      //格式 %占位符

      //String format = "名字= %s,年齡=%d,分?jǐn)?shù)=%c";

      String format = "名字= %s,年齡=%s,分?jǐn)?shù)=%s";

      System.out.printf(format, name,age,score);

      /**

      * 打印十進(jìn)制,八進(jìn)制,十六進(jìn)制

      */

      System.out.println();

      int num = 20;

      System.out.printf("八進(jìn)制=%o, 十六進(jìn)制=%x",num,num);

      System.out.println();

      System.out.println(Integer.toOctalString(num));

      System.out.println(Integer.toHexString(num));

      }

      }

      Properties實(shí)例

      package io;

      import java.io.FileInputStream;

      import java.io.FileOutputStream;

      import java.io.IOException;

      import java.io.InputStream;

      import java.io.PrintStream;

      import java.util.Properties;

      public class PropertiesDemo {

      private static Properties p = null;

      private static String filename = "xx.properties";

      static{

      p = new Properties();

      InputStream inStream = null;

      try{

      // inStream = new FileInputStream(filename);

      //從classpath的根路徑取加載

      /**

      * 1.先獲得類加載器

      * 2.得到加載器對(duì)象之后,調(diào)用 getResourceAsStream()

      */

      inStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(filename);

      p.load(inStream);

      }catch(Exception e){

      e.printStackTrace();

      }

      }

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

      /**

      * void load(InputStream inStream)

      從輸入流中讀取屬性列表(鍵和元素對(duì))。

      void load(Reader reader)

      按簡(jiǎn)單的面向行的格式從輸入字符流中讀取屬性列表(鍵和元素對(duì))。

      void list(PrintStream out)

      將屬性列表輸出到指定的輸出流。

      void list(PrintWriter out)

      將屬性列表輸出到指定的輸出流。

      void store(OutputStream out, String comments)

      以適合使用 load(InputStream) 方法加載到 Properties 表中的格式,將此 Properties 表中的屬性列表(鍵和元素對(duì))寫入輸出流。

      void store(Writer writer, String comments)

      以適合使用 load(Reader) 方法的格式,將此 Properties 表中的屬性列表(鍵和元素對(duì))寫入輸出字符。

      void storeToXML(OutputStream os, String comment)

      發(fā)出一個(gè)表示此表中包含的所有屬性的 XML 文檔。

      */

      System.out.println(p);

      p.list(System.out);//列出到控制臺(tái)

      p.list(new PrintStream("87.java"));

      p.store(new FileOutputStream("輸出.properties"), "不知道是啥");

      //p.storeToXML(new FileOutputStream("xml.xml"), "注視內(nèi)容");

      p.loadFromXML(new FileInputStream("xml.xml"));

      System.out.println("--"+p);

      }

      }

      java--打印流&Properties(五)

      Java

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:手把手教學(xué):如何引入 SDK
      下一篇:Google Earth Engine ——2001-2017年非洲0-200 厘米深度的基巖深度,預(yù)測(cè)平均值和標(biāo)準(zhǔn)偏差數(shù)據(jù)集
      相關(guān)文章
      亚洲JLZZJLZZ少妇| 亚洲电影一区二区| 久久久久无码精品亚洲日韩 | 日产亚洲一区二区三区| 亚洲国产另类久久久精品| 色偷偷亚洲男人天堂| 亚洲人成电影网站免费| 亚洲国产精品日韩av不卡在线| 亚洲乱妇熟女爽到高潮的片| 亚洲AV噜噜一区二区三区| 亚洲乱色伦图片区小说| 亚洲中文字幕久久精品无码VA| 亚洲欧洲日产国码久在线| 亚洲AV无码一区二区三区牲色 | 亚洲AV成人精品网站在线播放| 亚洲国产精品福利片在线观看| 亚洲狠狠婷婷综合久久久久 | 亚洲熟女精品中文字幕| 亚洲精品无码专区在线| 亚洲av无码专区首页| 日韩精品成人亚洲专区| jlzzjlzz亚洲乱熟在线播放| 中文字幕亚洲一区| 亚洲AV日韩AV鸥美在线观看| 亚洲视频中文字幕| 亚洲欧洲日本国产| 亚洲综合激情五月丁香六月| 亚洲国产成人精品无码区二本| 亚洲风情亚Aⅴ在线发布| 亚洲AV无码乱码在线观看牲色| 国产午夜亚洲精品理论片不卡| 亚洲精品乱码久久久久久中文字幕| 久久久久亚洲av无码尤物| 亚洲网站在线免费观看| 日韩亚洲国产高清免费视频| 无码天堂亚洲国产AV| 亚洲美女又黄又爽在线观看| 噜噜噜亚洲色成人网站∨| 亚洲综合校园春色| 国产亚洲福利一区二区免费看| 亚洲午夜久久久久久久久电影网|