java--打印流&Properties(五)
        【摘要】 
                    java--打印流&Properties(五) 
一、打印流 
  
思考:如果现在要想完成一个字符串或者是boolean型或者是字符型的数据输出使用OutputStream是否方便?肯定是不方便的,因为OutputStream中只能操作字节数据,所以其他的数据类型很难操作,那么在Java的IO包中为了解决这种问题增加...
    
    
    
    java--打印流&Properties(五)
一、打印流
- 思考:如果现在要想完成一个字符串或者是boolean型或者是字符型的数据输出使用OutputStream是否方便?
- 肯定是不方便的,因为OutputStream中只能操作字节数据,所以其他的数据类型很难操作,那么在Java的IO包中为了解决这种问题增加了两种类:PrintStream、PrintWriter。
- 打印流有非常好的打印功能,可以打印任何的数据类型。如,整数,小树,字符串等。
- 观察PrintStream类的构造:
- public PrintStream(File file) throws FileNotFoundException
- public PrintStream(OutputStream out)
虽然PrintStream是OutputStream的子类,但是在实例化的时候依然需要一个OutputStream的对象。
- PrintWriter和PrintStream都属于输出流,分别针对字符和字节。
- PrintWriter和PrintStream重载的print()和println()用于多种数据类型的输出。
print()里的参数不能为空;println()可以
- PrintWriter和PrintStream输出操作不抛出异常
- PrintStream调用println方法有自动flush功能;
二、打印流实例
Java5后,PrintStream类多了printf()方法用于格式化输出操作。但是格式化输出的时候必须指定输出数据的类型:

当然你也可以全部使用“%s”来表示所有的数据类型
打印流实例
  
   - 
    
     
    
    
     
      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 类不同,如果启用了自动刷新,则只有在调用 println、printf 或 format
     
    
- 
    
     
    
    
     		// 的其中一个方法时才可能完成此操作
     
    
- 
    
     
    
    
     		//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,分数=xx
     
    
- 
    
     
    
    
     		
     
    
- 
    
     
    
    
     
      		System.out.println("名字=" + name +",年龄=" + age +",分数=" + score);
     
    
- 
    
     
    
    
     		
     
    
- 
    
     
    
    
     		//格式 %占位符
     
    
- 
    
     
    
    
     		//String format = "名字= %s,年龄=%d,分数=%c";
     
    
- 
    
     
    
    
     		String format = "名字= %s,年龄=%s,分数=%s";
     
    
- 
    
     
    
    
     
      		System.out.printf(format, name,age,score);
     
    
- 
    
     
    
    
     		
     
    
- 
    
     
    
    
     		/**
     
    
- 
    
     
    
    
     
       * 打印十进制,八进制,十六进制
     
    
- 
    
     
    
    
     
       */
     
    
- 
    
     
    
    
     
      		System.out.println();
     
    
- 
    
     
    
    
     		int num = 20;
     
    
- 
    
     
    
    
     		
     
    
- 
    
     
    
    
     
      		System.out.printf("八进制=%o, 十六进制=%x",num,num);
     
    
- 
    
     
    
    
     
      		System.out.println();
     
    
- 
    
     
    
    
     
      		System.out.println(Integer.toOctalString(num));
     
    
- 
    
     
    
    
     
      		System.out.println(Integer.toHexString(num));
     
    
- 
    
     
    
    
     
      	}
     
    
- 
    
     
    
    
     
      }
     
    
 Properties实例
  
   - 
    
     
    
    
     
      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.得到加载器对象之后,调用 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) 
     
    
- 
    
     
    
    
     
       从输入流中读取属性列表(键和元素对)。 
     
    
- 
    
     
    
    
     
       void load(Reader reader) 
     
    
- 
    
     
    
    
     
       按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。 
     
    
- 
    
     
    
    
     
       
     
    
- 
    
     
    
    
     
       void list(PrintStream out) 
     
    
- 
    
     
    
    
     
       将属性列表输出到指定的输出流。 
     
    
- 
    
     
    
    
     
       void list(PrintWriter out) 
     
    
- 
    
     
    
    
     
       
     
    
- 
    
     
    
    
     
       将属性列表输出到指定的输出流。 
     
    
- 
    
     
    
    
     
       
     
    
- 
    
     
    
    
     
       void store(OutputStream out, String comments) 
     
    
- 
    
     
    
    
     
       以适合使用 load(InputStream) 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。 
     
    
- 
    
     
    
    
     
       void store(Writer writer, String comments) 
     
    
- 
    
     
    
    
     
       以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符。 
     
    
- 
    
     
    
    
     
       
     
    
- 
    
     
    
    
     
       void storeToXML(OutputStream os, String comment) 
     
    
- 
    
     
    
    
     
       发出一个表示此表中包含的所有属性的 XML 文档。 
     
    
- 
    
     
    
    
     
       */
     
    
- 
    
     
    
    
     		
     
    
- 
    
     
    
    
     		
     
    
- 
    
     
    
    
     
      		System.out.println(p);
     
    
- 
    
     
    
    
     		
     
    
- 
    
     
    
    
     
      		p.list(System.out);//列出到控制台
     
    
- 
    
     
    
    
     
      		p.list(new PrintStream("87.java"));
     
    
- 
    
     
    
    
     		
     
    
- 
    
     
    
    
     
      		p.store(new FileOutputStream("输出.properties"), "不知道是啥");
     
    
- 
    
     
    
    
     		
     
    
- 
    
     
    
    
     		//p.storeToXML(new FileOutputStream("xml.xml"), "注视内容");
     
    
- 
    
     
    
    
     		
     
    
- 
    
     
    
    
     
      		p.loadFromXML(new FileInputStream("xml.xml"));
     
    
- 
    
     
    
    
     
      		System.out.println("--"+p);
     
    
- 
    
     
    
    
     
      	}
     
    
- 
    
     
    
    
     
      }
     
    
 
文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。
原文链接:brucelong.blog.csdn.net/article/details/80064088
        【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
            cloudbbs@huaweicloud.com
        
        
        
        
        
        
        - 点赞
- 收藏
- 关注作者
 
             
           
评论(0)