Java高级特性第三章课后作业

这篇博客介绍了如何使用Java的BufferedReader和BufferedWriter实现C:/source.txt到D:/target.txt的文件复制,确保内容和大小一致。同时,讲解了如何编写程序读取Windows系统的win.ini文件并打印其内容。

3.使用BufferedReader和BufferedWriter复制C:/source.txt到D:target.txt。查看文件内容和文件大小是否一致。

package java2018_5_20.homeWork;

import java.io.*;

public class Text3 {
	public static void main(String[] args ) {
		File file = new File("C:/source.txt");
		File fileEnd = new File("D:/target.txt");
		
		BufferedReader reader = null;
		BufferedWriter writer = null;
		
		FileReader fileReader = null;
		FileWriter fileWriter = null;
		
		StringBuffer stf = null;
		try {
			//创建FileReader对象
			fileReader = new FileReader(file);
			reader = new BufferedReader(fileReader);
			
			//创建FileWriter对象
			fileWriter = new FileWriter(fileEnd);
			writer = new BufferedWriter(fileWriter);
			
			stf = new StringBuffer(); //创建StringBuffer对象
			
			String str;
			while ((str = reader.readLine()) != null) {
				stf.append(str);
				stf.append("\n");
				
				writer.write(str);
				writer.newLine();
			}
			System.out.println("源文件的大小为:"+file.length()+"字节");
			System.out.println("源文件的内容为:"+"\n"+stf.toString());
			writer.flush();  //刷新缓存区
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				//关闭流
				writer.close();
				reader.close();
				fileWriter.close();
				fileReader.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		//查看复制后的文件信息
		BufferedReader reader2 = null;
		FileReader fileReader2 = null;
		StringBuffer buf = new StringBuffer();
		try {
			fileReader2 = new FileReader(fileEnd);
			reader2 = new BufferedReader(fileReader2);
			
			String str2 ;
			while ((str2 = reader2.readLine()) != null) {
				buf.append(str2);
				buf.append("\n");
			}
			System.out.println("复制后的文件的大小为:"+fileEnd.length()+"字节");
			System.out.println("复制后的文件的内容为:"+"\n"+buf.toString());
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				reader2.close();
				fileReader2.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}

4.编写一个Java程序读取Windows目录下的win.ini文件,并输出其内容。

package ThreeBook.demo.homework.homework3_3;

import java.io.*;
public class Text4 {
	public static void main(String[] args) {  
        // TODO Auto-generated method stub  
        File file = new File("C:/Windows/win.ini");  
        FileInputStream inputStream = null;
        DataInputStream inputStream2 = null;

		try {
			inputStream = new FileInputStream(file);
			inputStream2 = new DataInputStream(inputStream);
			int temp = 0;
			while ((temp = inputStream2.read()) != -1) {
				System.out.print(temp+" ");
            }  
        } catch (Exception e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }finally {  
            try {  
            	inputStream2.close();
            	inputStream.close();
            } catch (IOException e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            }  
              
        }  
    }  
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值