目录
第1关:什么是IO流
第2关:字节流-输入输出
第3关:字符流 - 输入输出
第4关:复制文件
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 *********/ } }
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 *********/ } }
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 *********/ } }