目录
第1关:什么是IO流
第2关:字节流-输入输出
package step2;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
//自己加!!!
import java.io.InputStream;
import java.io.OutputStream;
public class Task {
public void task() throws IOException{
/********* Begin *********/
File file1 = new File("src/step2/input/task.txt");//新建src/step2/input/目录下的task.txt文件
InputStream fs = new FileInputStream(file1);//新建输入流
byte[] b1 = new byte[1024];
fs.read(b1);//读取输入流中的内容到字节数组中
String str1 = new String(b1,"utf-8");//将字节数组转换为字符串
System.out.print(str1);//打印字符串
fs.close();//关闭输入流
File file = new File("src/step2/output");//新建输出目录
if(!file.exists()){
file.mkdir();//如果目录不存在,则创建目录
}
String file2 = "src/step2/output/output.txt";//新建src/step2/output/目录下的output.txt文件
OutputStream out = new FileOutputStream(file2);//新建输出流
String str2 = "learning practice";//要写入文件的字符串
byte[] b2 = str2.getBytes();//字符转换为字节数组
out.write(b2);//将字节数组写入输出流
out.flush();//清空输出流
out.close();//关闭输出流
/********* End *********/
}
}
第3关:字符流 - 输入输出
package step3;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Task {
public void task() throws IOException{
/********* Begin *********/
String file1 = "src/step3/input/input.txt";//创建文件
FileReader fr = new FileReader(file1); //实例化
char[] ch = new char[8]; //创建数组
fr.read(ch);//将文件中数据从前到后读入到数组中
String file2="src/step3/output/output.txt";//创建文件
FileWriter fw = new FileWriter(file2);//实例化
fw.write(ch); // 从后到前读入数组中的数据到文件中
fr.close(); //关闭流
fw.flush(); //刷新流
fw.close(); //关闭流
/********* End *********/
}
}
第4关:复制文件
package step4;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Task {
public void task() throws IOException{
/********* Begin *********/
//创建FileReader对象,读取文本文件
FileReader fr = new FileReader("src/step4/input/input.txt");
//定义一个字符数组,用于存储读取到的字符
int len = 0;
char[] cbuf = new char[1024];
//创建FileWriter对象,写入文本文件
FileWriter fw = new FileWriter("src/step4/output/output.txt");
//循环读取文件内容,并写入输出流
while((len = fr.read(cbuf)) != -1){
fw.write(cbuf, 0, len);
}
//关闭输入输出流
fr.close();
fw.close();
//创建FileInputStream对象,读取图片文件
FileInputStream fs = new FileInputStream("src/step4/input/input.jpg");
//创建FileOutputStream对象,写入图片文件
FileOutputStream fos = new FileOutputStream("src/step4/output/output.jpg");
//定义一个字节数组,用于存储读取到的字节
int len1 = 0;
byte[] b = new byte[1024];
//循环读取文件内容,并写入输出流
while((len1 = fs.read(b)) != -1){
fos.write(b, 0, len1);
}
//关闭输入输出流
fs.close();
fos.close();
/********* End *********/
}
}