文件就是保存数据的地方,比如大家经常使用的word文档,text文档,excel文档,可以是音频也可以是视频还可以是文件。
文件在程序中是以流的形式来操作的。
常见文件对象的相关的构造器和方法
相关方法
@Test的使用:
package Pac;
import org.junit.jupiter.api.Test;
import java.io.File;
import java.io.IOException;
import java.io.File;
import java.io.IOException;
/**
*
*/
public class FileCreate {
public static void main(String[] args) {
}
//方式1:new File(String path) // 根据路径构建一个File对象
@Test
public void create01(){
String filePath = "e:\\news1.txt";
File file = new File(filePath);
try{
file.createNewFile();
System.out.println("news1.txt文件创建成功~");
}catch (IOException e){
e.printStackTrace();
}
}
//方式2: new File(File parent, String child) // 根据父目录文件 + 子路径 构建
//e:\\new2.txt
@Test
public void create02(){
File parentFile = new File("e:\\");
String fileName = "news2.txt";
File file = new File(parentFile,fileName); //在这里里,仅仅是在内存里面有file
try{
file.createNewFile(); //执行了create才是真正将file写在磁盘里面
System.out.println("news2.txt文件创建成功~ ");
}catch(IOException e){
e.printStackTrace();
}
}
//方式3:new File(String parent, String child) // 根据父目录 + 子目录路径 构建
@Test
public void create03(){
String parentPath = "e:\\";
String filePath = "news3.txt";
File file = new File(parentPath, filePath);
try{
file.createNewFile();
System.out.println("news3.txt文件创建成功~");
}catch(IOException e){
e.printStackTrace();
}
}
}
package Pac;
import org.junit.jupiter.api.Test;
import java.io.File;
/**
*
*/
public class FileInformation {
public static void main(String[] args) {
}
//获取文件的信息
@Test
public void info(){
//先创建文件的对象
File file = new File("e:\\news1.txt");
//调用相应的方法,得到对应的信息
System.out.println("文件名字 = " + file.getName());
// 常用的文件的方法: getName、getAbsolutePath、getParent、length、exits、isFile、isDirectory
System.out.println("文件的绝对路径 = " + file.getAbsolutePath());
System.out.println("文件的父目录 = " + file.getParent());
System.out.println("文件的大小 = " + file.length());
System.out.println("文件是否存在" + file.exists());
System.out.println("是否是一个文件" + file.isFile());
System.out.println("是否是一个目录" + file.isDirectory());
}
}
"C:\Program Files\Java\jdk1.8.0_152\bin\java.exe" -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\lib\idea_rt.jar=52010:D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\bin" -Dfile.encoding=UTF-8 -classpath "D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\lib\idea_rt.jar;C:\Users\Administrator\.m2\repository\org\junit\platform\junit-platform-launcher\1.7.0\junit-platform-launcher-1.7.0.jar;D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\plugins\junit\lib\junit5-rt.jar;D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\plugins\junit\lib\junit-rt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar;E:\刘建成\java\project\Pro\out\production\Mud;C:\Users\Administrator\.m2\repository\org\junit\jupiter\junit-jupiter\5.7.0\junit-jupiter-5.7.0.jar;C:\Users\Administrator\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.7.0\junit-jupiter-api-5.7.0.jar;C:\Users\Administrator\.m2\repository\org\apiguardian\apiguardian-api\1.1.0\apiguardian-api-1.1.0.jar;C:\Users\Administrator\.m2\repository\org\opentest4j\opentest4j\1.2.0\opentest4j-1.2.0.jar;C:\Users\Administrator\.m2\repository\org\junit\platform\junit-platform-commons\1.7.0\junit-platform-commons-1.7.0.jar;C:\Users\Administrator\.m2\repository\org\junit\jupiter\junit-jupiter-params\5.7.0\junit-jupiter-params-5.7.0.jar;C:\Users\Administrator\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.7.0\junit-jupiter-engine-5.7.0.jar;C:\Users\Administrator\.m2\repository\org\junit\platform\junit-platform-engine\1.7.0\junit-platform-engine-1.7.0.jar" com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit5 Pac.FileInformation,info
文件名字 = news1.txt
文件的绝对路径 = e:\news1.txt
文件的父目录 = e:\
文件的大小 = 14
文件是否存在true
是否是一个文件true
是否是一个目录false
Process finished with exit code 0
package Pac;
import org.junit.jupiter.api.Test;
import java.io.File;
public class Directory_ {
public static void main(String[] args) {
//
}
//判断E盘中 E:\\news1.txt是否存在,如果存在则删除
@Test
public void m1(){
String filePath = "d:\\news1.txt";
File file = new File(filePath);
if(file.exists()){
if(file.delete()){
System.out.println(filePath + "删除成功");
} else{
System.out.println(filePath + "删除失败");
}
}else{
System.out.println("该文件不存在......");
}
}
}
| 抽象基类 | 字节流 | 字符流 |
|---|---|---|
| 输入流 | InputStream | Reader |
| 输出流 | OutputStream | Writer |

InputStream 和 OutputStreamInputStream抽象类是所有类字节输入流的超类
InputStream抽象类的常用子类
FileInputStream: 文件输入流BufferedInputStream: 缓冲字节输入流ObjectInputStream: 对象字节输入流OutputStream抽象类的常用子类
FileOutputStream: 文件输出流FileInputStream

package PacinputStream;
import org.junit.jupiter.api.Test;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class FileInputStream_ {
public static void main(String[] args) {
}
//单个字节的读取,运行效率比较低
@Test
public void readFile01() {
String filePath = "e:\\hello.txt";
int readData = 0;
//创建了FileInputStream对象,用于读取hello.txt文件
FileInputStream fileInputStraem = null;
try {
//创建了FileInputStream对象,用于读取hello.txt文件
fileInputStraem = new FileInputStream(filePath);
// 从该输入流读取最多b.length字节的数据到字节数组。 此方法将阻塞,直到某些输入可用。
// 如何返回-1,表示读取完毕
while((readData = fileInputStraem.read()) != -1){
System.out.print((char)readData);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
//当文件读取完毕的时候,一定要关闭流,释放资源
try {
fileInputStraem.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
"C:\Program Files\Java\jdk1.8.0_152\bin\java.exe" -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\lib\idea_rt.jar=53612:D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\bin" -Dfile.encoding=UTF-8 -classpath "D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\lib\idea_rt.jar;C:\Users\Administrator\.m2\repository\org\junit\platform\junit-platform-launcher\1.7.0\junit-platform-launcher-1.7.0.jar;D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\plugins\junit\lib\junit5-rt.jar;D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\plugins\junit\lib\junit-rt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar;E:\刘建成\java\project\Pro\out\production\Mud;C:\Users\Administrator\.m2\repository\org\junit\jupiter\junit-jupiter\5.7.0\junit-jupiter-5.7.0.jar;C:\Users\Administrator\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.7.0\junit-jupiter-api-5.7.0.jar;C:\Users\Administrator\.m2\repository\org\apiguardian\apiguardian-api\1.1.0\apiguardian-api-1.1.0.jar;C:\Users\Administrator\.m2\repository\org\opentest4j\opentest4j\1.2.0\opentest4j-1.2.0.jar;C:\Users\Administrator\.m2\repository\org\junit\platform\junit-platform-commons\1.7.0\junit-platform-commons-1.7.0.jar;C:\Users\Administrator\.m2\repository\org\junit\jupiter\junit-jupiter-params\5.7.0\junit-jupiter-params-5.7.0.jar;C:\Users\Administrator\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.7.0\junit-jupiter-engine-5.7.0.jar;C:\Users\Administrator\.m2\repository\org\junit\platform\junit-platform-engine\1.7.0\junit-platform-engine-1.7.0.jar" com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit5 PacinputStream.FileInputStream_,readFile01
hello world,刘建æˆ
Process finished with exit code 0
package PacinputStream;
import org.junit.jupiter.api.Test;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class FileInputStream_ {
public static void main(String[] args) {
}
/**
* 单个字节的读取,效率比较低
* ->使用read(byte[] b)
*/
@Test
public void readFile01() {
String filePath = "e:\\hello.txt";
int readData = 0;
//创建了FileInputStream对象,用于读取hello.txt文件
FileInputStream fileInputStraem = null;
try {
//创建了FileInputStream对象,用于读取hello.txt文件
fileInputStraem = new FileInputStream(filePath);
// 从该输入流读取一个字节的数据。 如果没有输入可用,此方法将阻止。
// 如何返回-1,表示读取完毕
while((readData = fileInputStraem.read()) != -1){
System.out.print((char)readData);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
//当文件读取完毕的时候,一定要关闭流,释放资源
try {
fileInputStraem.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//优化代码:
/**
* 使用read(byte[] b)读取文件
* @param b
*/
@Test
public void readFile02() {
String filePath = "e:\\hello.txt";
int readData = 0;
//定义一个字节数组
byte[] buf = new byte[8]; //一次性读取8个字节
int readLen = 0;
//创建了FileInputStream对象,用于读取hello.txt文件
FileInputStream fileInputStraem = null;
try {
//创建了FileInputStream对象,用于读取hello.txt文件
fileInputStraem = new FileInputStream(filePath);
// 从该输入流读取最多b.length字节的数据到字节数组。 此方法将阻塞,直到某些输入可用。
// 如何返回-1,表示读取完毕
while((readLen = fileInputStraem.read(buf)) != -1){ //实际读取到的值
System.out.print(new String(buf,0,readLen)); //显示
}
} catch (IOException e) {
e.printStackTrace();
} finally {
//当文件读取完毕的时候,一定要关闭流,释放资源
try {
fileInputStraem.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
"C:\Program Files\Java\jdk1.8.0_152\bin\java.exe" -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\lib\idea_rt.jar=53812:D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\bin" -Dfile.encoding=UTF-8 -classpath "D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\lib\idea_rt.jar;C:\Users\Administrator\.m2\repository\org\junit\platform\junit-platform-launcher\1.7.0\junit-platform-launcher-1.7.0.jar;D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\plugins\junit\lib\junit5-rt.jar;D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\plugins\junit\lib\junit-rt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar;E:\刘建成\java\project\Pro\out\production\Mud;C:\Users\Administrator\.m2\repository\org\junit\jupiter\junit-jupiter\5.7.0\junit-jupiter-5.7.0.jar;C:\Users\Administrator\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.7.0\junit-jupiter-api-5.7.0.jar;C:\Users\Administrator\.m2\repository\org\apiguardian\apiguardian-api\1.1.0\apiguardian-api-1.1.0.jar;C:\Users\Administrator\.m2\repository\org\opentest4j\opentest4j\1.2.0\opentest4j-1.2.0.jar;C:\Users\Administrator\.m2\repository\org\junit\platform\junit-platform-commons\1.7.0\junit-platform-commons-1.7.0.jar;C:\Users\Administrator\.m2\repository\org\junit\jupiter\junit-jupiter-params\5.7.0\junit-jupiter-params-5.7.0.jar;C:\Users\Administrator\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.7.0\junit-jupiter-engine-5.7.0.jar;C:\Users\Administrator\.m2\repository\org\junit\platform\junit-platform-engine\1.7.0\junit-platform-engine-1.7.0.jar" com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit5 PacinputStream.FileInputStream_,readFile02
hello world
Process finished with exit code 0
FileOutputStream

package PacoutputStream;
import org.junit.jupiter.api.Test;
import java.io.*;
public class OutputStream_ {
/**
* 要求:请使用FileOutputStream在a.txt文件中写入“Hello,world”。 [如果文件不存在,会创建文件]
* (注意:前提是目录已经存在)
* @param args
*/
public static void main(String[] args) {
}
/**
* 演示使用FileOutputStream写入文件,将数据写到文件中,如果该文件不存在则创建该文件
*
*/
@Test
public void writeFile(){
//创建按我们的FileOutputStream对象
String filePath = "e:\\a.txt";
FileOutputStream fileOutputStream = null;
try {
//得到fileOutputStream对象
fileOutputStream = new FileOutputStream(filePath,true);
//写入一个字节
// fileOutputStream.write('H');
//1.这种方法是写入覆盖原来的内容
//写入字符串
String str = "hello,world!";
//str.getBytes()可以将字符串转成字符数组
fileOutputStream.write(str.getBytes());
/**从位于偏移量 off的指定字节数组写入 len字节到该文件输出流。
* public void write(byte[] b,
* int off,
* int len)
* throws IOException
*
* 从位于偏移量off的指定字节数组写入len字节到文件的输出流
*
*/
str = "hi,world,Martin!";
fileOutputStream.write(str.getBytes(),0,str.length());
//2.如果不希望覆盖原先的内容
/**
* public FileOutputStream(File file,
* boolean append)
* throws FileNotFoundException
*
* file-要写入的文件
* append-如果为True,则写入文件的末尾,而不是开头。追加文件,而非覆盖。
*/
fileOutputStream.write(str.getBytes(),0,str.length());
} catch (IOException e) {
e.printStackTrace();
} finally {
//将流关闭
try {
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
FileInputStream 和 FileOutputStream
package PacoutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileCopy {
public static void main(String[] args) {
//完成文件拷贝,将e://Koala.jpg 拷贝c:\\
//思路分析
//1. 创建的文件的输入流,将文件读入到程序
//2. 创建文件的输出流,将读取到的文件的数据写入到指定的位置
//在完成程序时,应该是读取部分数据就写入到指定的文件中,这里是使用的循环操作。
//而不是将读取全部数据,直接写入全部数据。
String srcFilePath = "e:\\Koala.jpg";
String destFilePath = "d:\\Koala.jpg";
FileInputStream fileInputStream = null;
FileOutputStream fileOutputStream = null;
try {
fileInputStream = new FileInputStream(srcFilePath);
fileOutputStream = new FileOutputStream(destFilePath);
//定义一个字节数组,提高读取效率
byte[] buf = new byte[1024];
int readLen = 0;
while((readLen = fileInputStream.read(buf)) != -1){
//读取到后,就写入到文件,通过fileOutputStream
//即,是一边读一边写
fileOutputStream.write(buf,0,readLen);
}
System.out.println("拷贝ok~");
} catch (IOException e) {
e.printStackTrace();
} finally {
//关闭释放资源
try {
//如果输入流不等于空,则关闭输入流
if(fileInputStream != null){
fileInputStream.close();
}
//如果输出流不等于空,则关闭输出流
if(fileOutputStream != null){
fileOutputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
"C:\Program Files\Java\jdk1.8.0_152\bin\java.exe" "-javaagent:D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\lib\idea_rt.jar=54854:D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_152\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar;E:\刘建成\java\project\Pro\out\production\Mud;C:\Users\Administrator\.m2\repository\org\junit\jupiter\junit-jupiter\5.7.0\junit-jupiter-5.7.0.jar;C:\Users\Administrator\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.7.0\junit-jupiter-api-5.7.0.jar;C:\Users\Administrator\.m2\repository\org\apiguardian\apiguardian-api\1.1.0\apiguardian-api-1.1.0.jar;C:\Users\Administrator\.m2\repository\org\opentest4j\opentest4j\1.2.0\opentest4j-1.2.0.jar;C:\Users\Administrator\.m2\repository\org\junit\platform\junit-platform-commons\1.7.0\junit-platform-commons-1.7.0.jar;C:\Users\Administrator\.m2\repository\org\junit\jupiter\junit-jupiter-params\5.7.0\junit-jupiter-params-5.7.0.jar;C:\Users\Administrator\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.7.0\junit-jupiter-engine-5.7.0.jar;C:\Users\Administrator\.m2\repository\org\junit\platform\junit-platform-engine\1.7.0\junit-platform-engine-1.7.0.jar" PacoutputStream.FileCopy
拷贝ok~
Process finished with exit code 0
Reader 和 WriterFileReader: 字符流,按照字符来操作
FileReader相关方法:
new FileReader(File/String)read : 每次读取单个字符,返回该字符,如果文件末尾返回-1read(char[]) : 批量读取多个字符到数组,返回读取到的字符数,如果到文件末未返回-1API:
new String(char[]) : 将char[]转换成Stringnew String(char[], off, len) : 将char[] 的指定的部分转换为StringFileWriter:字符流,按照字符来操作
FileWriter相关方法:
new FileWriter(File/String): 覆盖模式,相当于流的指针在首端, 这里的覆盖模式是指,对于原来的文件。我们可以覆盖掉,如果在同一个try里面,则实际上是进行的追加的。try结束了之后,再重新覆盖的。new FileWriter(File/String, true): 追加模式,相当于流的指针在尾端write(int): 写入单个字符write(char[]): 写入指定数组write(Char[], off, len): 写入指定数组的指定部分write(String): 写入整个字符串write(Strng, off, len): 写入字符串的指定的部分相关的API:
String类toCharArray: 将String转换为char[]FileWriter使用后,必须要关闭(close)或者刷新(flash),否则写入不到指定的文件
FileReader

package PacReader;
import org.junit.jupiter.api.Test;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
/**
*
*/
public class FileReader_ {
public static void main(String[] args) {
}
/**
* 单个字符读取文件
*/
@Test
public void readFile01() {
String flaPath = "e:\\story.txt";
FileReader fileReader = null;
int data = ' ';
//1.先创建一个FileReader对象
try {
fileReader = new FileReader(flaPath);
//循环读取,使用read方法,单个字符读取
while((data=fileReader.read()) != -1){
System.out.print((char)data);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(fileReader != null){
fileReader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 多个字符读取文件
*/
@Test
public void readFile02() {
String flaPath = "e:\\story.txt";
FileReader fileReader = null;
int readLen = 0;
char[] buf = new char[8];
//1.先创建一个FileReader对象
try {
fileReader = new FileReader(flaPath);
//循环读取,使用read(buf)方法,返回的是实际读取到的字符数
//如果返回-1,说明文件结束
while((readLen=fileReader.read(buf)) != -1){
System.out.print(new String(buf,0,readLen));
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(fileReader != null){
fileReader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
FileWriter

FileReader、FileWriter[源码]BufferedReader、BufferedWriter[源码]BufferedReader


从这里可以看出,BufferedReader里面有一个Reader属性。个属性只要是Reader的子类都是可以的。

实现具体的BufferedReader代码
package PacReader01;
import java.io.BufferedReader;
import java.io.FileReader;
/**
* 演示BufferedReader的使用
*/
public class BufferedReader_ {
public static void main(String[] args) throws Exception{
String filePath = "E:\\a.java";
//创建BufferedReader对象,节点流对象为FileReader
BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));
//读取
/**
* bufferedReader.readLine();表示按行读取;当返回为null时,表示读取完毕
*/
String line; //按行读取,效率高
while((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
//关闭流,仅仅需要关闭外层流就可以了。因为底层会去自动的关闭节点流
//FileReader
bufferedReader.close();
}
}
BufferedWriter


从这里可以看出,BufferedWriter里面有一个Reader属性。这个属性只要是Writer的子类都是可以的。

实现具体的BufferedWriter代码
package PacReader01;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
/**
* 演示BufferedWriter的使用
*/
public class BufferedWriter_ {
public static void main(String[] args) throws IOException {
String filePath = "e:\\\\ok.txt";
//创建一个BufferedWriter
//说明:
// 1. new FileWriter(filePath,true) 表示以追加的方式写入
// 2. new FileWriter(filePath) 表示以覆盖的方式写入
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(filePath, true));
bufferedWriter.write("hello1,思格露教育");
//bufferedWriter插入一个和系统相关的换行符
bufferedWriter.newLine();
bufferedWriter.write("hello2,思格露教育");
//bufferedWriter插入一个和系统相关的换行符
bufferedWriter.newLine();
bufferedWriter.write("hello3,思格露教育");
//bufferedWriter插入一个和系统相关的换行符
bufferedWriter.newLine();
//关闭外层流即可,传入的new FileWriter(filePath) 会在底层关闭
bufferedWriter.close();
}
}
(在程序中,不可能将所有的信息完全放在程序里面,如IP地址、用户名和密码,因为这样的话在每一次访问不同的数据库,将会重新更新一次源代码,这肯定是不行的。我们将这一些动态配置信息,放在一个单独的配置文件里面,在不更改源码的情况下,来实现这一部分信息的更新。这种需求是有的。)
com.hspedu.properties_Properties01.java 如下一个配置文件 mysql.properities
ip = 192.168.0.13
user = root
pwd = 12345
ip、user和pwd的值是多少?按照顺序读取每一行数据:

package com.hspedu.properties_;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Properties01 {
public static void main(String[] args) throws IOException {
//读取 mysql.properties 文件,并得到 ip. user 和 pwd
BufferedReader br = new BufferedReader(new FileReader("src\\mysql.properties"));
String line = "";
while ((line = br.readLine()) != null){ //循环读取
System.out.println(line);
}
br.close();
}
}
"C:\Program Files\Java\jdk1.8.0_152\bin\java.exe" "-javaagent:D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\lib\idea_rt.jar=50613:D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_152\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar;E:\刘建成\java\project\Pro\out\production\Pro" com.hspedu.properties_.Properties01
ip=192.168.100.100
user=root
pwd=12345
Process finished with exit code 0
按照顺序读取某一行数据: (Properties方法)
package com.hspedu.properties_;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Properties01 {
public static void main(String[] args) throws IOException {
//读取 mysql.properties 文件,并得到 ip. user 和 pwd
BufferedReader br = new BufferedReader(new FileReader("src\\mysql.properties"));
String line = "";
while ((line = br.readLine()) != null){ //循环读取
String[] split = line.split("="); //对每一行按照=号来拆
System.out.println(split[0] + "值是: " + split[1]);
// System.out.println(line);
}
br.close();
}
}
"C:\Program Files\Java\jdk1.8.0_152\bin\java.exe" "-javaagent:D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\lib\idea_rt.jar=50644:D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_152\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar;E:\刘建成\java\project\Pro\out\production\Pro" com.hspedu.properties_.Properties01
ip值是: 192.168.100.100
user值是: root
pwd值是: 12345
Process finished with exit code 0
按照上面的方法是完全可以实现功能的,但是里面的代码在访问数据的时候还得改代码,较麻烦,并不是特别方便。
按照顺序读取某一种数据: (Properties方法)
package com.hspedu.properties_;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Properties01 {
public static void main(String[] args) throws IOException {
//读取 mysql.properties 文件,并得到 ip. user 和 pwd
BufferedReader br = new BufferedReader(new FileReader("src\\mysql.properties"));
String line = "";
while ((line = br.readLine()) != null){ //循环读取
String[] split = line.split("="); //对每一行按照=号来拆
//如果我们要求指定的ip值,其他的直接过滤掉了
if("ip".equals(split[0])){
System.out.println(split[0] + "值是: " + split[1]);
}
}
br.close();
}
}
"C:\Program Files\Java\jdk1.8.0_152\bin\java.exe" "-javaagent:D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\lib\idea_rt.jar=50666:D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_152\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar;E:\刘建成\java\project\Pro\out\production\Pro" com.hspedu.properties_.Properties01
ip值是: 192.168.100.100
Process finished with exit code 0
键=值键=值String.Properties 常见方法
load : 加载配置文件的键值对到Properties对象list : 将数据显示到指定的设备getProperty(key) : 根据键获取值setProperty(key,value) : 设置键值对到Properties对象store : 将Properties中的键值对存储到配置文件,在idea中,保存信息到配置文件,如果含有中文,会存储为unicode码案例1:
使用Properties类完成对mysql.properties的读取,看代码:
package com.hspedu.properties_;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
public class Properties02 {
public static void main(String[] args) throws IOException {
//使用Properties类来读取mysql.properties文件
//1. 创建Properties对象
Properties properties = new Properties();
//2. 加载指定的配置文件
properties.load(new FileReader("src\\mysql.properties"));
//3. 把键值对显示到控制台
properties.list(System.out);
}
}
"C:\Program Files\Java\jdk1.8.0_152\bin\java.exe" "-javaagent:D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\lib\idea_rt.jar=50864:D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_152\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar;E:\刘建成\java\project\Pro\out\production\Pro" com.hspedu.properties_.Properties02
-- listing properties --
user=root
pwd=12345
ip=192.168.100.100
Process finished with exit code 0
package com.hspedu.properties_;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
public class Properties02 {
public static void main(String[] args) throws IOException {
//使用Properties类来读取mysql.properties文件
//1. 创建Properties对象
Properties properties = new Properties();
//2. 加载指定的配置文件
properties.load(new FileReader("src\\mysql.properties"));
//3. 把键值对显示到控制台
properties.list(System.out);
//4. 根据key获取对应的值
String user = properties.getProperty("user");
String pwd = properties.getProperty("pwd");
System.out.println("用户名:" + user);
System.out.println("密码:" + pwd);
}
}
"C:\Program Files\Java\jdk1.8.0_152\bin\java.exe" "-javaagent:D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\lib\idea_rt.jar=50885:D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_152\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar;E:\刘建成\java\project\Pro\out\production\Pro" com.hspedu.properties_.Properties02
-- listing properties --
user=root
pwd=12345
ip=192.168.100.100
用户名:root
密码:12345
Process finished with exit code 0
案例2:
使用Properties类完成 mysql2.properties 的读取,看代码:
package com.hspedu.properties_;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
public class Properties03 {
public static void main(String[] args) throws IOException {
//使用Properties类创建配置文件,或者是修改配置文件
Properties properties = new Properties();
//创建文件
//如果该文件没有key,就创建
//如果该文件有key,就修改
properties.setProperty("charset","utf8");
properties.setProperty("user","汤姆"); //保存时,是中文的 unicode码
properties.setProperty("pwd","abc111");
//将key-value存储到文件中即可
properties.store (new FileOutputStream("src\\mysql2.properties"),null);
System.out.println("保存配置文件成功~");
//修改某个键值对
}
}
"C:\Program Files\Java\jdk1.8.0_152\bin\java.exe" "-javaagent:D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\lib\idea_rt.jar=50919:D:\软件下载\idea\idea\IntelliJ IDEA 2021.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_152\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar;E:\刘建成\java\project\Pro\out\production\Pro" com.hspedu.properties_.Properties03
保存配置文件成功~
Process finished with exit code 0
#Mon Aug 08 01:02:05 CST 2022
user=\u6C64\u59C6
pwd=abc111
charset=utf8