如何將每人每日的工資打在同一張上(將一個(gè)人的工資打到另一個(gè)人工資上)
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
版權(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)容。