java--打印流&Properties(五)

举报
brucexiaogui 发表于 2021/12/30 01:37:47 2021/12/30
【摘要】 java--打印流&Properties(五) 一、打印流   思考:如果现在要想完成一个字符串或者是boolean型或者是字符型的数据输出使用OutputStream是否方便?肯定是不方便的,因为OutputStream中只能操作字节数据,所以其他的数据类型很难操作,那么在Java的IO包中为了解决这种问题增加...

java--打印流&Properties(五)

一、打印流

 

  • 思考:如果现在要想完成一个字符串或者是boolean型或者是字符型的数据输出使用OutputStream是否方便?
  • 肯定是不方便的,因为OutputStream中只能操作字节数据,所以其他的数据类型很难操作,那么在Java的IO包中为了解决这种问题增加了两种类:PrintStream、PrintWriter。
  • 打印流有非常好的打印功能,可以打印任何的数据类型。如,整数,小树,字符串等。
  • 观察PrintStream类的构造:
  1. public PrintStream(File file) throws FileNotFoundException
  2. public PrintStream(OutputStream out)

虽然PrintStream是OutputStream的子类,但是在实例化的时候依然需要一个OutputStream的对象。

 

  • PrintWriter和PrintStream都属于输出流,分别针对字符和字节。
  • PrintWriter和PrintStream重载的print()和println()用于多种数据类型的输出。

 

print()里的参数不能为空;println()可以

 

 

  • PrintWriter和PrintStream输出操作不抛出异常
  • PrintStream调用println方法有自动flush功能;

二、打印流实例

Java5后,PrintStream类多了printf()方法用于格式化输出操作。但是格式化输出的时候必须指定输出数据的类型:

当然你也可以全部使用“%s”来表示所有的数据类型

打印流实例


  
  1. package io;
  2. import java.io.FileWriter;
  3. import java.io.IOException;
  4. import java.io.PrintStream;
  5. import java.io.PrintWriter;
  6. public class PrintDemo {
  7. public static void main(String[] args) throws IOException {
  8. PrintStream ps = new PrintStream("out.txt");
  9. ps.write('A');
  10. // ps.print();
  11. ps.print(false);
  12. ps.print(true);
  13. ps.println();
  14. ps.println("Will");
  15. ps.println(113);
  16. ps.println(false);
  17. ps = System.out;
  18. System.out.println("");
  19. PrintWriter pw = new PrintWriter("out2.txt");
  20. // PrintWriter(Writer out, boolean autoFlush)
  21. // 与 PrintStream 类不同,如果启用了自动刷新,则只有在调用 println、printf 或 format
  22. // 的其中一个方法时才可能完成此操作
  23. //pw = new PrintWriter(new FileWriter("out3.txt"), true);
  24. pw = new PrintWriter(System.out,true);
  25. pw.println("呼哈哈哈哈");
  26. pw.println(false);
  27. // pw.close();
  28. }
  29. }

打印流格式化输出


  
  1. package io;
  2. public class PrintfDemo {
  3. public static void main(String[] args) {
  4. String name = "Will";
  5. int age = 17;
  6. char score = 'A';
  7. //名字= XX,年龄=xx,分数=xx
  8. System.out.println("名字=" + name +",年龄=" + age +",分数=" + score);
  9. //格式 %占位符
  10. //String format = "名字= %s,年龄=%d,分数=%c";
  11. String format = "名字= %s,年龄=%s,分数=%s";
  12. System.out.printf(format, name,age,score);
  13. /**
  14. * 打印十进制,八进制,十六进制
  15. */
  16. System.out.println();
  17. int num = 20;
  18. System.out.printf("八进制=%o, 十六进制=%x",num,num);
  19. System.out.println();
  20. System.out.println(Integer.toOctalString(num));
  21. System.out.println(Integer.toHexString(num));
  22. }
  23. }

Properties实例


  
  1. package io;
  2. import java.io.FileInputStream;
  3. import java.io.FileOutputStream;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.PrintStream;
  7. import java.util.Properties;
  8. public class PropertiesDemo {
  9. private static Properties p = null;
  10. private static String filename = "xx.properties";
  11. static{
  12. p = new Properties();
  13. InputStream inStream = null;
  14. try{
  15. // inStream = new FileInputStream(filename);
  16. //从classpath的根路径取加载
  17. /**
  18. * 1.先获得类加载器
  19. * 2.得到加载器对象之后,调用 getResourceAsStream()
  20. */
  21. inStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(filename);
  22. p.load(inStream);
  23. }catch(Exception e){
  24. e.printStackTrace();
  25. }
  26. }
  27. public static void main(String[] args) throws IOException {
  28. /**
  29. * void load(InputStream inStream)
  30. 从输入流中读取属性列表(键和元素对)。
  31. void load(Reader reader)
  32. 按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。
  33. void list(PrintStream out)
  34. 将属性列表输出到指定的输出流。
  35. void list(PrintWriter out)
  36. 将属性列表输出到指定的输出流。
  37. void store(OutputStream out, String comments)
  38. 以适合使用 load(InputStream) 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。
  39. void store(Writer writer, String comments)
  40. 以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符。
  41. void storeToXML(OutputStream os, String comment)
  42. 发出一个表示此表中包含的所有属性的 XML 文档。
  43. */
  44. System.out.println(p);
  45. p.list(System.out);//列出到控制台
  46. p.list(new PrintStream("87.java"));
  47. p.store(new FileOutputStream("输出.properties"), "不知道是啥");
  48. //p.storeToXML(new FileOutputStream("xml.xml"), "注视内容");
  49. p.loadFromXML(new FileInputStream("xml.xml"));
  50. System.out.println("--"+p);
  51. }
  52. }

 

文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。

原文链接:brucelong.blog.csdn.net/article/details/80064088

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。