头歌:Java高级特性 - IO流 (答案+详细注释)第1关:什么是IO流+第2关:字节流-输入输出+第3关:字符流 - 输入输出+第4关:复制文件

目录

第1关:什么是IO流

第2关:字节流-输入输出

第3关:字符流 - 输入输出

第4关:复制文件


第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 *********/		
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值