构造器 | 说明 |
---|---|
public PrintStream(OutputStream out) | 打印流直接通向字节输出流管道 |
public PrintStream(File file) | 打印流直接通向文件对象 |
public PrintStream(String fileName) | 打印流直接通向文件路径 |
public PrintStream(String fileName, String csn) | 打印流直接通向文件路径,并指定字符集编码 |
方法名称 | 说明 |
---|---|
public void print(Xxx xx) | 打印任意类型的数据出去 |
package com.app.d6_print_stream;
import java.io.FileOutputStream;
import java.io.PrintStream;
/**
目标:学会使用打印流,高效、方便的写数据出去
*/
public class PrintStreamDemo01 {
public static void main(String[] args) {
try (
// 1、创建打印流管道接通目标文件
// PrintStream ps = new PrintStream(new FileOutputStream("day11-io2-app/src/ps.txt"));
PrintStream ps = new PrintStream("day11-io2-app/src/ps.txt");
// 打印流还可以直接指定编码写出数据
// PrintStream ps = new PrintStream("day11-io2-app/src/ps.txt", "GBK");
) {
// 2、打印任意类型的数据
ps.println(97);
ps.println('a');
ps.println(23.5);
ps.println(true);
ps.println("我是打印流输出的,我是啥就打印啥!");
ps.println('国');
}catch (Exception e) {
e.printStackTrace();
}
}
}
构造器 | 说明 |
---|---|
public PrintWriter(OutputStream out) | 打印流直接通向字节输出流管道 |
public PrintWriter(Writer w) | 打印流直接通向字符输出流管道 |
public PrintWriter(File file) | 打印流直接通向文件对象 |
public PrintWriter(String fileName) | 打印流直接通向文件路径 |
public PrintWriter(String fileName, String csn) | 打印流直接通向文件路径,并指定字符集编码 |
方法名称 | 说明 |
---|---|
public void print(Xxx xx) | 打印任意类型的数据出去 |
package com.app.d6_print_stream;
import java.io.FileWriter;
import java.io.PrintWriter;
/**
目标:学会使用打印流,高效、方便的写出数据
*/
public class PrintWriterDemo02 {
public static void main(String[] args) {
try (
// 1、创建打印流管道接通目标文件
// PrintWriter pw = new PrintWriter(new FileWriter("day11-io2-app/src/pw.txt"));
PrintWriter pw = new PrintWriter("day11-io2-app/src/pw.txt"); // 打印功能与PrintStream的使用没有区别
// 打印流还可以直接指定编码写出数据
// PrintWriter pw = new PrintWriter("day11-io2-app/src/pw.txt", "GBK");
) {
// 2、打印任意类型的数据
pw.println(97);
pw.println('a');
pw.println(23.5);
pw.println(true);
pw.println("我是打印流输出的,我是啥就打印啥!");
pw.println('国');
}catch (Exception e) {
e.printStackTrace();
}
}
}
1、打印流有几种?各有什么特点?
2、打印流的优势什么?
属于打印流的一种应用,可以把输出语句的打印位置改到文件。
PrintStream ps = new PrintStream("文件地址");
System.setOut(ps);
package com.app.d7_print_stream_redirect;
import java.io.PrintStream;
/**
目标:了解打印流重定向操作:将系统打印流改成我们自己的打印流
*/
public class PrintStreamRedirectDemo {
public static void main(String[] args) {
System.out.println("风急天高猿啸哀,渚清沙白鸟飞回。"); // 这句语句底层就是调用打印流将数据打印到控制台的
System.out.println("无边落木萧萧下,不尽长江滚滚来。");
try (
// 重定向:改变输出语句的位置到指定文件中
PrintStream ps = new PrintStream("day11-io2-app/src/log.txt");
) {
// 把系统打印流改成我们自己的打印流
System.setOut(ps);
System.out.println("万里悲秋常作客,百年多病独登台。");
System.out.println("艰难苦恨繁霜鬓,潦倒新停浊酒杯。");
}catch (Exception e) {
e.printStackTrace();
}
}
}
控制台:
将系统打印流改成我们自己的打印流后:
Properties
属性集对象
Map
集合,但是我们一般不会当集合使用,因为HashMap
更好用。.properties
结尾的文件,里面的内容都是key=value
,后续做系统配置信息的。方法名称 | 说明 |
---|---|
void load(InputStream inStream) | 从输入字节流读取属性列表(键和元素对) |
void load(Reader reader) | 从输入字符流读取属性列表(键和元素对) |
void store(OutputStream out, String comments) | 将此属性列表(键和元素对)写入此 Properties 表中, 以适合使用 load(InputStream)方法的格式写入输出字节流 |
void store(Writer writer, String comments) | 将此属性列表(键和元素对)写入此 Properties 表中, 以适合使用 load(Reader)方法的格式写入输出字符流 |
public Object setProperty(String key, String value) | 保存键值对( put ) |
public String getProperty(String key) | 使用此属性列表中指定的键搜索属性值( get ) |
public Set< String > stringPropertyNames() | 所有键的名称的集合( keySet() ) |
package com.app.d8_properties;
import java.io.FileWriter;
import java.util.Properties;
/**
目标:使用Properties把键值对信息存入到属性文件中(写入)
*/
public class PropertiesDemo01 {
public static void main(String[] args) {
// 1、创建属性集properties
Properties properties = new Properties();
// 2、将键值对信息存入到属性集properties中
properties.setProperty("admin", "abc123");
properties.setProperty("root", "123123");
properties.setProperty("moyu", "6a6b6c");
System.out.println(properties);
try {
/**
结合IO流将属性集properties中的键值对数据信息存入到属性文件users.properties中
参数一:保存管道(字符输出流)
参数二:保存心得(注释)
*/
properties.store(new FileWriter("day11-io2-app/src/users.properties")
, "This is users!!");
}catch (Exception e) {
e.printStackTrace();
}
}
}
{root=123123, admin=abc123, moyu=6a6b6c}
Process finished with exit code 0
package com.app.d8_properties;
import java.io.FileReader;
import java.util.Properties;
/**
目标:使用Properties读取属性文件中的键值对信息(读取)
*/
public class PropertiesDemo02 {
public static void main(String[] args) {
// 1、创建属性集properties
Properties properties = new Properties();
System.out.println(properties); // {}:空的
try {
// 2、加载属性文件中的键值对数据信息到属性集properties中
properties.load(new FileReader("day11-io2-app/src/users.properties"));
System.out.println(properties);
// 3、根据键获取属性值
String rs1 = properties.getProperty("root");
System.out.println(rs1);
String rs2 = properties.getProperty("admin");
System.out.println(rs2);
}catch (Exception e) {
e.printStackTrace();
}
}
}
{}
{root=123123, admin=abc123, moyu=6a6b6c}
123123
abc123
Process finished with exit code 0
1、Properties的作用是啥?
commons-io
是apache开源基金组织提供的一组有关IO操作的类库,可以提高IO功能开发的效率。commons-io
工具包提供了很多有关IO操作的类。FileUtils
、IOUtils
。方法名称 | 说明 |
---|---|
String readFileToString(File file, String encoding) | 读取文件中的数据,返回字符串 |
void copyFile(File srcFile, File destFile) | 复制文件到某个文件夹 |
void copyDirectoryToDirectory(File srcDir, File destDir) | 复制文件夹到某个文件夹 |
lib
commons-io-2.6.jar
文件复制到lib
文件夹Add as Library(加载到依赖库中)
——> 点击OK