File文件操作
package com;
import java.io.File;
import java.io.IOException;
public class FileDemo {
public static void main(String[] args) throws IOException {
File file = new File("D:\\a.txt");
boolean newFile = file.createNewFile();//创建文件,成功返回true,存在返回false
System.out.println(newFile);
String name = file.getName();//获得文件名称
System.out.println(name);
System.out.println(file.isFile());//判断是否文件
System.out.println(file.isDirectory());//判断是否文件夹
System.out.println(file.delete());//删除文件
File file1 = new File("D:\\aa\\bb\\cc");
boolean mkdirs = file1.mkdirs();//创建文件夹
File file2= new File("D:\\aa");
File[] files3 = file2.listFiles();//返回File数组 ,注意:如果是文件名返回null,如果文件夹是空的返回0
System.out.println(files3);//[Ljava.io.File;@6fb554cc
//遍历文件
for (File file4 : files3) {
System.out.println(file4);
}
//递归删除D:\\aa文件夹
deleteDir("D:\\aa");
}
//删除文件夹
public static void deleteDir(String path){
File file = new File(path);
File[] files = file.listFiles();
for (File file1 : files) {
if(file1.isFile()){
file1.delete();
}else{
deleteDir(String.valueOf(file1));
}
}
file.delete();
}
}
FileInputStream和FileOutputStream字节流操作
package com;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileInputStreamDemo {
public static void main(String[] args) throws IOException {
//创建文件
File file = new File("D:\\x.txt");
boolean newFile = file.createNewFile();
//字节流写出操作
FileOutputStream outputStream = new FileOutputStream("D:\\x.txt");
byte[] bytes = new byte[]{'a','b','c','d'};
outputStream.write(bytes);
outputStream.close();
//字节流读入操作
FileInputStream inputStream = new FileInputStream("D:\\x.txt");
//一次读一个字节
// int res;
// while ((res = inputStream.read())!=-1){
//
// System.out.println((char)res);
// }
//一次读多个字节
byte[] bytes1 = new byte[1024];
int len;
while ((len = inputStream.read(bytes1))!=-1){
System.out.println(new String(bytes,0,len));
}
inputStream.close();
}
}
BufferInputStream和BufferOutputStream字节缓冲流
package com;
import java.io.*;
public class BufferInputStreamDemo {
public static void main(String[] args) throws IOException {
//文件拷贝操作
BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream("D:\\rabbitmq-server-3.9.16-1.el7.noarch.rpm"));
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream("E:\\rabbitmq-server-3.9.16-1.el7.noarch.rpm"));
byte[] bytes = new byte[1024];
int len;
while ((len = bufferedInputStream.read(bytes))!=-1){
bufferedOutputStream.write(bytes,0,len);
}
bufferedInputStream.close();
bufferedOutputStream.close();
}
}
Filereader字符输入和FileWriter字符输出
package com;
import java.io.*;
public class FileReaderDemo {
public static void main(String[] args) throws IOException {
//字符输出
FileWriter fileWriter = new FileWriter("D:\\x.txt");
fileWriter.write("张三李四");
fileWriter.close();
//字符输入
FileReader fileReader = new FileReader("D:\\x.txt");
//一次读一个字符
// int read;
// while ( (read = fileReader.read())!=-1) {
// System.out.println((char)read);
// }
char[] chars = new char[1024];
int len ;
while ((len = fileReader.read(chars))!=-1){
System.out.println(new String(chars,0,len));
}
fileReader.close();
}
}
BufferedWriter字符缓冲流输出和BufferedReader字符缓冲流输入
package com;
import java.io.*;
public class BufferReaderDemo {
public static void main(String[] args) throws IOException {
//缓冲字符流输出
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("D:\\x.txt"));
bufferedWriter.write("左鲁大师\r\n");
bufferedWriter.write("左鲁大师1\r\n");
bufferedWriter.write("左鲁大师2\r\n");
bufferedWriter.flush();
bufferedWriter.close();
//缓冲字符流输入
BufferedReader bufferedReader = new BufferedReader(new FileReader("D:\\x.txt"));
//第一种读取方式
// char[] chars = new char[1024];
// int len;
// while ((len = bufferedReader.read(chars))!=-1){
// System.out.println(new String(chars,0,len));
// }
//第二种读取方式,一行一行读
String line;
while ((line = bufferedReader.readLine())!=null){
System.out.println(line);
}
bufferedReader.close();
}
}
Properties作为HashMap使用和特有方法
package com;
import java.io.IOException;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
public class PropertiesDemo {
public static void main(String[] args) throws IOException {
Properties properties = new Properties();
//作为HashMap集合的基本使用
properties.put("zs","张三");
properties.put("ls","李四");
properties.put("ww","王五");
Set<Object> objects = properties.keySet();
for (Object object : objects) {
System.out.println("key:" + object + " value:"+properties.get(object));
}
System.out.println("---------------------");
Set<Map.Entry<Object, Object>> entries = properties.entrySet();
for (Map.Entry<Object, Object> entry : entries) {
System.out.println("key:"+entry.getKey() +" value:" + entry.getValue());
}
//特有方法
Properties properties1 = new Properties();
properties1.setProperty("aa","AA");
properties1.setProperty("bb","BB");
properties1.setProperty("cc","CC");
properties1.setProperty("dd","DD");
System.out.println(properties1.getProperty("aa"));
System.out.println(properties1.getProperty("bb"));
System.out.println(properties1.getProperty("cc"));
System.out.println(properties1.getProperty("dd"));
System.out.println("-----------------------");
Set<String> keys = properties1.stringPropertyNames();
for (String key : keys) {
System.out.println(properties1.get(key));
}
}
}
缓冲流注意事项
缓冲区输出流带有一个数据缓冲区,缓冲区输出流默认调用write一般不会马上就把数据写出而是等数据缓冲区满了之后再自动一次性把缓冲区的数据写出,如果在关闭缓冲区输出流之前不手动flush一下缓冲区可能还会有数据残留在缓冲区中,这样子直接关闭输出流的话可能会造成被写出的数据或文件不完整。这个写得好。我就引用了兄弟的过来了