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)