package zywaf.yty.practice_05;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class CopyFileDemo2 {
public static void main(String[] args) throws IOException {
// 封装数据源
// BufferedReader br = new BufferedReader(new FileReader("waf.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("waf.txt")));
// 封装目的地
// BufferedWriter bw = new BufferedWriter(new FileWriter("zywafyty.txt"));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("zywafyty.txt")));
// 读写数据
String line = null;
while ((line = br.readLine()) != null) {
bw.write(line);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
}
}
14. IO流小结图解
15. 复制文本文件的5种方式案例
package zywaf.yty.practice_01;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
public class CopyFileDemo {
public static void main(String[] args) throws IOException {
String inputString = "f.txt";
String outputString = "g.txt";
// method1(inputString,outputString);
// method2(inputString,outputString);
// method3(inputString,outputString);
// method4(inputString,outputString);
method5(inputString,outputString);
}
// 字符流一次读写一个字符串
private static void method5(String inputString, String outputString) throws IOException {
BufferedReader br = new BufferedReader(new FileReader(inputString));
BufferedWriter bw = new BufferedWriter(new FileWriter(outputString));
String line = null;
while ((line = br.readLine()) != null) {
bw.write(line);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
}
// 字符缓冲流一次读写一个字符数组
private static void method4(String inputString, String outputString) throws IOException {
// FileReader fr = new FileReader(inputString);
// FileWriter fw = new FileWriter(outputString);
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(inputString)));
BufferedWriter bw = new BufferedWriter(new FileWriter(outputString));
// int ch = 0;
// while ((ch = fr.read()) != -1) {
// fw.write(ch);
// }
char[] chs = new char[1024];
int len = 0;
while ((len = br.read(chs)) != -1) {
bw.write(chs, 0, len);
}
bw.close();
br.close();
}
// 字符缓冲流一次读写一个字符
private static void method3(String inputString, String outputString) throws IOException {
// FileReader fr = new FileReader(inputString);
// FileWriter fw = new FileWriter(outputString);
BufferedReader br = new BufferedReader(new FileReader(inputString));
BufferedWriter bw = new BufferedWriter(new FileWriter(outputString));
int ch = 0;
while ((ch = br.read()) != -1) {
bw.write(ch);
}
bw.close();
br.close();
}
// 基本字符流一次读写一个字符数组
private static void method2(String inputString, String outputString) throws IOException {
FileReader fr = new FileReader(inputString);
FileWriter fw = new FileWriter(outputString);
// int ch = 0;
// while ((ch = fr.read()) != -1) {
// fw.write(ch);
// }
char[] chs = new char[1024];
int len = 0;
while ((len = fr.read(chs)) != -1) {
fw.write(chs, 0, len);
}
fw.close();
fr.close();
}
// 基本字符流一次读写一个字符
private static void method1(String inputString, String outputString) throws IOException {
FileReader fr = new FileReader(inputString);
FileWriter fw = new FileWriter(outputString);
int ch = 0;
while ((ch = fr.read()) != -1) {
fw.write(ch);
}
fw.close();
fr.close();
}
}
16. 复制图片的4种方式案例
package zywaf.yty.practice_02;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyImageDemo {
public static void main(String[] args) throws IOException {
String beforeVideo = "/Users/yangtengyu/downloads/酷爱WAF丨哈狗帮/轻熟女27&1080P.mp4";
String afterVideo = "轻熟女27.mp4";
// method1(beforeImage,afterImage);
// method2(beforeImage,afterImage);
// method3(beforeImage,afterImage);
method4(beforeVideo,afterVideo);
}
// 4.缓冲高效字节流一次读写一个字节数组
private static void method4(String beforeVideo, String afterVideo) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(beforeVideo));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(afterVideo));
// int by = 0;
// while ((by = bis.read()) != -1) {
// bos.write(by);
// }
int len = 0;
byte[] bys = new byte[1024];
while ((len = bis.read(bys)) != -1) {
bos.write(bys, 0, len);
}
bos.close();
bis.close();
}
// 3.缓冲高效字节流一次读写一个字节
private static void method3(String beforeImage, String afterImage) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(beforeImage));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(afterImage));
int by = 0;
while ((by = bis.read()) != -1) {
bos.write(by);
}
bos.close();
bis.close();
}
// 2.基本字节流一次读写一个字节数组
private static void method2(String beforeImage, String afterImage) throws IOException {
FileInputStream fis = new FileInputStream(beforeImage);
FileOutputStream fos = new FileOutputStream(afterImage);
byte[] bys = new byte[1024];
int len = 0;
while ((len = fis.read(bys)) != -1) {
fos.write(bys,0,len);
}
fos.close();
fis.close();
}
// 1.基本字节流一次读写一个字节
private static void method1(String beforeImage, String afterImage) throws IOException {
FileInputStream fis = new FileInputStream(beforeImage);
FileOutputStream fos = new FileOutputStream(afterImage);
int by = 0;
while ((by = fis.read()) != -1) {
fos.write(by);
}
fos.close();
fis.close();
}
}
17. 把集合中的数据存储到文本文件案例 与 把文本文件中的数据存储到集合中案例
package zywaf.yty.practice_03;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class ArrayListToFileDemo {
public static void main(String[] args) throws IOException {
List<String> list = new ArrayList<String>();
list.add("小糊涂神");
list.add("大头儿子小头爸爸");
list.add("蓝皮书大脸猫");
BufferedWriter bw = new BufferedWriter(new FileWriter("a.txt"));
for (String string : list) {
bw.write(string);
bw.newLine();
bw.flush();
}
bw.close();
}
}
package zywaf.yty.practice_03;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class FileToArrayListDemo {
public static void main(String[] args) throws IOException {
List<String> list = new ArrayList<String>();
String line = null;
BufferedReader br = new BufferedReader(new FileReader("f.txt"));
while ((line = br.readLine()) != null) {
list.add(line);
}
br.close();
for (String string : list) {
System.out.println(string);
}
}
}
18. 随机获取文本文件中的姓名案例
package zywaf.yty.practice_03;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class GetRandomName {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new FileReader("乌鸦高校.txt"));
List<String> list = new ArrayList<String>();
String line = null;
while ((line = br.readLine()) != null) {
list.add(line);
}
br.close();
Random r = new Random();
int index = r.nextInt(list.size());
String name = list.get(index);
System.out.println(name);
}
}
19. 复制单级文件夹案例
package zywaf.yty.practice_04;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyFolderDemo {
public static void main(String[] args) throws IOException {
File srcFolder = new File("/Users/yangtengyu/desktop/CSDN/尔康");
File destFolder = new File("/Users/yangtengyu/desktop/CSDN/还珠格格");
if (!destFolder.exists()) {
destFolder.mkdir();
}
File[] fileArray = srcFolder.listFiles();
for (File file : fileArray) {
String name = file.getName();
File newFile = new File(destFolder, name);
copyFile(file,newFile);
}
}
private static void copyFile(File file, File newFile) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile));
byte[] bys = new byte[1024];
int len = 0;
while ((len = bis.read(bys)) != -1) {
bos.write(bys, 0, len);
}
bos.close();
bis.close();
}
}
20. 复制指定目录下指定后缀名的文件并修改名称案例
package zywaf.yty.practice_05;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
public class CopyFolderDemo {
public static void main(String[] args) throws IOException {
File srcFolder = new File("/Users/yangtengyu/desktop/Java Code/JavaSE_day16/src/zywaf/yty/practice_03");
File destFolder = new File("/Users/yangtengyu/desktop/CSDN/尔康");
if (!destFolder.exists()) {
destFolder.mkdir();
}
File[] fileArray = srcFolder.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return new File(dir, name).isFile() && name.endsWith(".java");
}
});
for (File file : fileArray) {
String name = file.getName();
File newFile = new File(destFolder, name);
copyFile(file,newFile);
}
File[] destFileArray = destFolder.listFiles();
for (File destFile : destFileArray) {
String name = destFile.getName();
String newName = name.replaceAll(".java", ".jad");
File newFile = new File(destFolder, newName);
destFile.renameTo(newFile);
}
}
private static void copyFile(File file, File newFile) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile));
int len = 0;
byte[] bys = new byte[1024];
while ((len = bis.read(bys)) != -1) {
bos.write(bys, 0, len);
}
bos.close();
bis.close();
}
}
21. 把一个文件中的字符串排序后再写入另一个文件案例
package zywaf.yty.practice_06;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Arrays;
public class StringDemo {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new FileReader("s1.txt"));
String line = br.readLine();
br.close();
char[] chs = line.toCharArray();
Arrays.sort(chs);
String s = new String(chs);
BufferedWriter bw = new BufferedWriter(new FileWriter("s2.txt"));
bw.write(s);
bw.newLine();
bw.flush();
bw.close();
}
}