打印流分为字节打印流:PrintStream 字符打印流:PrintWriter
特点1:都是只能输出 不能读取
字节打印流:
构造方法:
主要用上面的两个构造
成员方法:
//创建字节打印流对象:ctrl+p注意参数
PrintStream ps=new PrintStream(new FileOutputStream("..\\ioDemo\\h.txt"),true,"UTF-8");
//输出数据
ps.println("97");
ps.print("你好");
ps.println();
ps.printf("%s是%s", "Object", "顶级父类");
//关流
ps.close();
占位符打印:各种占位符
//% n表示换行
ps.printf("我叫%s %n", "阿玮");
ps.printf("%s喜欢%s %n", "阿珍", "阿强");
ps.printf("字母H的大写:%c %n", 'H');
ps.printf("8>3的结果是:%b %n", 8 > 3);
ps.printf("100的一半是:%d %n", 100 / 2);
ps.printf("100的16进制数是:%x %n", 100);
ps.printf("100的8进制数是:%o %n", 100);
ps.printf("50元的书打8.5折扣是:%f元%n", 50 * 0.85);
ps.printf("计算的结果转16进制:%a %n", 50 * 0.85);
ps.printf("计算的结果转科学计数法表示:%e %n", 50 * 0.85);
ps.printf("计算的结果转成指数和浮点数,结果的长度较短的是:%g %n", 50 * 0.85);
ps.printf("带有百分号的符号表示法,以百分之85为例:%d%% %n", 85);
ps.println("---------------------");
double num1 = 1.0;
ps.printf("num: %.4g %n", num1);
ps.printf("num: %.5g %n", num1);
ps.printf("num: %.6g %n", num1);
float num2 = 1.0F;
ps.printf("num: %.4f %n", num2);
ps.printf("num: %.5f %n", num2);
ps.printf("num: %.6f %n", num2);
ps.println("---------------------");
ps.printf("数字前面带有0的表示方式:%03d %n", 7);
ps.printf("数字前面带有0的表示方式:%04d %n", 7);
ps.printf("数字前面带有空格的表示方式:% 8d %n", 7);
ps.printf("整数分组的效果是:%,d %n", 9989997);
ps.println("---------------------");
//最终结果是10位,小数点后面是5位,不够在前面补空格,补满10位
//如果实际数字小数点后面过长,但是只规定两位,会四舍五入
//如果整数部分过长,超出规定的总长度,会以实际为准
ps.printf("一本书的价格是:%2.5f元%n", 49.8);
ps.printf("%(f%n", -76.04);
//%f,默认小数点后面7位,
//<,表示采取跟前面一样的内容
ps.printf("%f和%3.2f %n", 86.04, 1.789651);
ps.printf("%f和%<3.2f %n", 86.04, 1.789651);
ps.println("---------------------");
Date date = new Date();
// %t 表示时间,但是不能单独出现,要指定时间的格式
// %tc 周二 12月 06 22:08:40 CST 2022
// %tD 斜线隔开
// %tF 冒号隔开(12小时制)
// %tr 冒号隔开(24小时制)
// %tT 冒号隔开(24小时制,带时分秒)
ps.printf("全部日期和时间信息:%tc %n", date);
ps.printf("月/日/年格式:%tD %n", date);
ps.printf("年-月-日格式:%tF %n", date);
ps.printf("HH:MM:SS PM格式(12时制):%tr %n", date);
ps.printf("HH:MM格式(24时制):%tR %n", date);
ps.printf("HH:MM:SS格式(24时制):%tT %n", date);
System.out.println("---------------------");
ps.printf("星期的简称:%ta %n", date);
ps.printf("星期的全称:%tA %n", date);
ps.printf("英文月份简称:%tb %n", date);
ps.printf("英文月份全称:%tB %n", date);
ps.printf("年的前两位数字(不足两位前面补0):%tC %n", date);
ps.printf("年的后两位数字(不足两位前面补0):%ty %n", date);
ps.printf("一年中的第几天:%tj %n", date);
ps.printf("两位数字的月份(不足两位前面补0):%tm %n", date);
ps.printf("两位数字的日(不足两位前面补0):%td %n", date);
ps.printf("月份的日(前面不补0):%te %n", date);
System.out.println("---------------------");
ps.printf("两位数字24时制的小时(不足2位前面补0):%tH %n", date);
ps.printf("两位数字12时制的小时(不足2位前面补0):%tI %n", date);
ps.printf("两位数字24时制的小时(前面不补0):%tk %n", date);
ps.printf("两位数字12时制的小时(前面不补0):%tl %n", date);
ps.printf("两位数字的分钟(不足2位前面补0):%tM %n", date);
ps.printf("两位数字的秒(不足2位前面补0):%tS %n", date);
ps.printf("三位数字的毫秒(不足3位前面补0):%tL %n", date);
ps.printf("九位数字的毫秒数(不足9位前面补0):%tN %n", date);
ps.printf("小写字母的上午或下午标记(英):%tp %n", date);
ps.printf("小写字母的上午或下午标记(中):%tp %n", date);
ps.printf("相对于GMT的偏移量:%tz %n", date);
ps.printf("时区缩写字符串:%tZ%n", date);
ps.printf("1970-1-1 00:00:00 到现在所经过的秒数:%ts %n", date);
ps.printf("1970-1-1 00:00:00 到现在所经过的毫秒数:%tQ %n", date);
ps.close();
我叫阿玮
阿珍喜欢阿强
字母H的大写:H
8>3的结果是:true
100的一半是:50
100的16进制数是:64
100的8进制数是:144
50元的书打8.5折扣是:42.500000元
计算的结果转16进制:0x1.54p5
计算的结果转科学计数法表示:4.250000e+01
计算的结果转成指数和浮点数,结果的长度较短的是:42.5000
带有百分号的符号表示法,以百分之85为例:85%
---------------------
num: 1.000
num: 1.0000
num: 1.00000
num: 1.0000
num: 1.00000
num: 1.000000
---------------------
数字前面带有0的表示方式:007
数字前面带有0的表示方式:0007
数字前面带有空格的表示方式: 7
整数分组的效果是:9,989,997
---------------------
一本书的价格是:49.80000元
(76.040000)
86.040000和1.79
86.040000和86.04
---------------------
全部日期和时间信息:周五 2月 09 15:55:37 CST 2024
月/日/年格式:02/09/24
年-月-日格式:2024-02-09
HH:MM:SS PM格式(12时制):03:55:37 下午
HH:MM格式(24时制):15:55
HH:MM:SS格式(24时制):15:55:37
星期的简称:周五
星期的全称:星期五
英文月份简称:2月
英文月份全称:二月
年的前两位数字(不足两位前面补0):20
年的后两位数字(不足两位前面补0):24
一年中的第几天:040
两位数字的月份(不足两位前面补0):02
两位数字的日(不足两位前面补0):09
月份的日(前面不补0):9
两位数字24时制的小时(不足2位前面补0):15
两位数字12时制的小时(不足2位前面补0):03
两位数字24时制的小时(前面不补0):15
两位数字12时制的小时(前面不补0):3
两位数字的分钟(不足2位前面补0):55
两位数字的秒(不足2位前面补0):37
三位数字的毫秒(不足3位前面补0):011
九位数字的毫秒数(不足9位前面补0):011000000
小写字母的上午或下午标记(英):下午
小写字母的上午或下午标记(中):下午
相对于GMT的偏移量:+0800
时区缩写字符串:CST
1970-1-1 00:00:00 到现在所经过的秒数:1707465337
1970-1-1 00:00:00 到现在所经过的毫秒数:1707465337011
字符打印流:
构造方法:
成员方法:
//创建字符打印流对象
PrintWriter pw=new PrintWriter( new FileWriter("..\\ioDemo\\h.txt"),true);
//输出
pw.println("98");
pw.print("你好");
pw.println();
pw.printf("%s是%s","Object","顶级父类");
//关流
pw.close();
总结:
打印流和输出语句的关系:
System.out.println();
System是一个最终类
它里面有一个静态方法out
//1.
System.out.println("123");
//2.
PrintStream ps = System.out;
ps.println("123");
123
123