打印流
作用:打印流可以实现方便,高效的打印数据到 文件中去。可以实现打印什么数据就是什么数据,例如打印97就是97,打印boolean的true,就是true
打印流一般指:PrintStream,PrintWrite
PrintStream
package com.itliuxue.d8_printStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
public class PrintDemo01 {
public static void main(String[] args) throws Exception {
//续加数据
// PrintStream ps = new PrintStream(new FileOutputStream("file-io-app\\src\\ps.txt",true));
PrintStream ps = new PrintStream("D:\\IDEA\\file-io-app\\src\\ps.txt");
ps.println(97);
ps.println('a');
ps.println('r');
ps.println("我是打印流,想打印什么就是什么");
ps.close();
}
}
PrintWriter
package com.itliuxue.d8_printStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.io.PrintWriter;
public class PrintDemo01 {
public static void main(String[] args) throws Exception {
//续加数据
// PrintStream ps = new PrintStream(new FileOutputStream("file-io-app\\src\\ps.txt",true));
// PrintStream ps = new PrintStream("D:\\IDEA\\file-io-app\\src\\ps.txt");
PrintWriter ps = new PrintWriter("D:\\\\IDEA\\\\file-io-app\\\\src\\\\ps.txt");
ps.println(97);
ps.println('a');
ps.println('r');
ps.println("我是打印流,想打印什么就是什么");
ps.println("我在学习!");
ps.close();
}
}
PrintStream和PrintWriter的区别
总结
扩展:输出语句重定向
属于打印流的一种应用,可以将输出语句的打印位置改到文件
package com.itliuxue.d8_printStream;
import java.io.FileNotFoundException;
import java.io.PrintStream;
public class PrintDemo02 {
public static void main(String[] args) throws Exception {
System.out.println("锦瑟无端五十弦");
System.out.println("一弦一度思华年");
// 改变输出方向的位置
PrintStream ps = new PrintStream("D:\\\\IDEA\\\\file-io-app\\\\src\\log.txt");
System.setOut(ps);
System.out.println("庄生晓梦迷蝴蝶");
System.out.println("望帝春心托杜鹃");
}
}
补充知识:Properties
Properties属性集对象
就是一个Map集合,但是我们一般不当作集合使用,因为有HashMap
Properties的核心作用
Properties是一个属性文件,可以将自己对象中的键值对信息存到一个属性文件中去
属性文件;后缀是.properties结尾的文件,里面的内容都是key=value,后续做系统配置信息的
Properties的常用API
//用Properties把键值对信息存入属性文件中
package com.itliuxue.d9_properties;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
//用Properties把键值对信息存入属性文件中
public class PropertiesDemo01 {
public static void main(String[] args) throws Exception {
Properties p = new Properties();
p.setProperty("itliu","123456");
p.setProperty("itxue","456789");
p.setProperty("curry","666");
System.out.println(p);
/*
参数一:保存管道,字符输出流管道
参数二:保存心得
*/
p.store(new FileWriter("D:\\IDEA\\file-io-app\\src\\usuer.properties"),
"this is user.i am happy");
}
}
//Properties读取属性文件中的键值对信息
package com.itliuxue.d9_properties;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Properties;
public class PropertiesDemo02 {
//Properties读取属性文件中的键值对信息
public static void main(String[] args) throws Exception {
Properties properties = new Properties();
System.out.println(properties);
properties.load(new FileReader("D:\\IDEA\\file-io-app\\src\\usuer.properties"));
System.out.println(properties);
String rs = properties.getProperty("itxue");
System.out.println(rs);
}
}
总结
补充知识:IO流框架
common-io概述
common-io是apache开源基金组织提供的一组有关io操作的类库,可以提高IO功能开发的效率
common-io工具包提供了很多有关io操作的类主要有两个类FileUtils,IOUtils
FileUtiles主要有如下方法
package d10_commons_io;
import org.apache.commons.io.IOUtils;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class CommonsIODemo01 {
public static void main(String[] args) throws Exception{
IOUtils.copy(new FileInputStream("C:\\Users\\LIUXUE\\Desktop\\新建文件夹\\微信图片_20211105191707.jpg"),new FileOutputStream("C:\\Users\\LIUXUE\\Desktop\\新建文件夹\\copy.jpg"));
}
}
JDK1.7自己也做了一些一行代码完成复制的操作:New IO的技术
但其不支持非空文件夹的删除