java57_孙明明_java_作业1205

一、

利用io ,完成 文件的复制功能 (例如,d盘有个 a文件,里面有26个字母,然后给我复制到 b文件里)

 

答案

package org.jsoft.hk;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;

public class CpAToB {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
         File fa=new  File ("D:/a.txt"); //创建文件fa
         File fb=new File ("D:/b.txt");//创建文件fb
         OutputStream ot=null;//声明 输出字节流,
             try {
                 ot=new FileOutputStream(fa);//实例化 字节流文件 
                 for(char i='a';i<='z';i++)    {//循环a~z
                ot.write(i);//将a~z写入文件     并捕获异常
                ot.write(32);//将"空格" 写入文件   并捕获异常
                
                 }} catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                try {
                    ot.close();//关闭输出字节流文件   捕获抛出异常
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                 System.out.println("写入a~z成功");
             }
             
                BufferedReader in=null; //声明 一个缓冲字符输入流
                BufferedWriter otput=null ;//声明一个换成字符输出流
                
                
                try {
                    //实例化 in 输入fa文件中的字节  输入字节流要想转换成输入字符流 要有InputStreamReader 这个桥梁 
                    in=new BufferedReader(new InputStreamReader(new FileInputStream(fa)));
                } catch (FileNotFoundException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
                try {
                    //实例化 otput 输出到输出文件fb中  输出字节流转换成输出字符流 要有OutputStreamWriter 这个桥梁
                    otput=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fb)));
                } catch (FileNotFoundException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
        try {
            String line; //声明 String 类型的line 存放 in读取的字符。
            while((line=in.readLine())!=null){
                otput.write(line);//将读取的 字符写入 otput
            }
                
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        finally{
            
            try {
                in.close();//关闭 输入字符流 并捕获异常
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            try {
                otput.close();//关闭输出字符流  并捕获异常
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
         }
         }}

 

 

 

二、

答案:

package org.jsoft.hk;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;

public class FileInputAndOutput {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
    File f=new File("test.txt"); //创建当前目录下test.txt文件
    FileOutputStream fot=null; //声明 输出字节流
            boolean b;
            String s="Hello World"; 
            if(f.exists()){ //如果文件存在,
                b=true; //则b=true
            try {
                fot=new  FileOutputStream(f,b);//在f文件内容后面 追加
                byte []bt=new byte[s.length()];//创建一个 字节类型的数组长度为 字符串的长度
                for(int i=0;i<bt.length;i++) //循环
                {
                    bt[i]=(byte) (s.charAt(i));//先将字符串转换成字符,再转换成byte类型
                }
                    try {
                        fot.write(bt);  //将数组byte 中的内容写入输出流fot的文件f中
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }    finally {
                        try {
                            fot.close();// 关闭文件输出流
                            System.out.println("写入成功");
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }
            } catch (FileNotFoundException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            
                }    
            
            FileInputStream  fin=null;  //声明 输入字节流
            try {
                fin=new FileInputStream(f); //创建 参数为文件f的 输入字节流
                    byte[] buf = new byte[ (int)f.length()];  //创建一个长度为文件内容长度的数组
                    try {
                        fin.read(buf) ;//将读取输入字节流 存放到定义好的数组中
                        String s1=new String(buf,0,buf.length);    //将数组中 0~数组长度的 数组  赋给s1(String 的构造方法中有)
                        System.out.println(s1);//输出s1
                
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                finally{
                    try {
                        fin.close();//关闭流
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
                    
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
                }
            }
        
        

    三、

答案:

①、输入流     字节流    低级流

②、 int类型    读取一个数据字节

                        将数组长度个字节读入数组bs中

③、 将从第offset 到 第len 个字节 读入数组bs中        要读入的数组bs    从下标为offset 读到 下标为len 

 

 

四、

答案:

 创建新文件   

 不在创建

 在原来内容后面追加内容

 

五、

 

答案:

A、B 

 

转载于:https://my.oschina.net/u/3715009/blog/1587126

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值