输入输出

输入输出 1.编写TextRw.java的Java应用程序,程序完成的功能是:首先向TextRw.txt中写入自己的学号和姓名,读取TextRw.txt中信息并将其显package com.hanqi.test;


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

public class Zuoye {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        
        //输出流    从内存流向文件    写入的姓名学号在文件中显示内容
        try 
        {    
            //构造方法确定目标文件
            //如果文件不存在,自动创建该文件,但不自动创建目录
            //如果目录不存在,会引发异常
            //FileOutputStream out=new FileOutputStream("d:/text03.txt");
            File file=new File("d:/Zytext");
            
            if(!file.exists())
            {
                file.mkdirs();
            }
            FileOutputStream out=new FileOutputStream("d:/Zytext/TextRw.txt");
        
            //写入的内容
            String nr="我叫韩如月\r\n201219045110";
            
            //实际是把数据转为byte数组
            //兼容任何数据类型
            byte[]b=nr.getBytes();
            
            
            //写入数据到文件中
            //byte[] 内容数组
            
            //思考题,把输出流的写入方式由覆盖改为追加
            out.write(b);
            out.close();//关闭流
            
            System.out.println("输出流写入文件成功");
    
        
            
        
        
            //输入流   从文件把数据读入内存
            
            FileInputStream in=new FileInputStream("d:/Zytext/TextRw.txt");
            
            //装载数据的数组
            byte[]b1=new byte[1024];//1k大小
            
            //每次读取数据的长度
            int i=0;
            String str="";
            
            //读取数据
            //分段按顺序读取,每次最多读取数组长度大小的数据
            //返回值表示每次读取的数据长度,如果数据读完或读取失败,返回-1
            while((i=in.read(b1))>0)
            {            
                //组合数据
                //参数1-起始位置;i-数据长度
            str+=new String(b1,0,i);//参数只有b1时,后用空格,加上0,i就没有
            
            }
            System.out.println("i="+i);
            System.out.println("Str="+str);
            in.close();
            }
            catch (Exception e) 
            {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
            }
    }


 2.编写IoDemo.java的Java应用程序,程序完成的功能是:首先读imporimport java.io.FileNotFoundException;

    try 
            {
            File file=new File("d:/text.txt");
            file.createNewFile();
            
            System.out.println("创建文件"+file.getAbsolutePath()+"成功");
            
            
            
              FileInputStream in = new FileInputStream("d:/text.txt") ;
                
                byte[ ]  b = new byte[1024] ;
                
                String s = "" ;
                
                int i = -1 ;
                
                while((i=in.read(b))>0)
                {
                    s += new String(b,0,i) ;
                }
                
                System.out.println("输入完成!");
                
                System.out.println("读取到的内容为:"+s);
                
                in.close();
                
                System.out.println("请输入修改后的名字:");
                
                Scanner sc = new Scanner(System.in) ;
                
                String str = sc.nextLine( ) ;
                
                File file1 = new File("d:/text.txt");
                
                file.renameTo(new File("d:/"+str)) ;
                
                FileOutputStream out = new FileOutputStream(file) ;
                
                byte[ ] by = str.getBytes() ;
                
                out.write(by);
                
                out.close();
                
                System.out.println("输出完成!");
                
                System.out.println("改名成功!");
                
            } 
            catch (Exception e) 
            {
                e.printStackTrace();
            }
        
        

    }

}

 

3.编写BinIoDemo.java的Java应用程序,程序完成的功能是:完成1.doc文件的复制,复制以后的文件的名称为自己的学号姓名.doc。

 

try {
            //创个文件
            File file=new File("d:/1.doc");
            file.createNewFile();
            
            System.out.println("创建文件"+file.getAbsolutePath()+"成功");
            
            //读取,输入流
            FileInputStream in=new FileInputStream("d:/1.doc");
            //
            byte[]b=new byte[1024];//1kb=1024byte
            
            int i=-1;//文件读完了会显示-1
            //写输出流
            FileOutputStream out=new FileOutputStream("d:/韩如月2012.doc");
            
            //边读边写
            while((i=in.read(b))>0)
            {
                //
                out.write(b,0,i);
                
            }
            
            out.close();
            in.close();
            System.out.println("复制成功");
        } 
        catch (Exception e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
        
    }
}

 

posted @ 2016-09-27 13:43  hanruyue  阅读(224)  评论(0编辑  收藏  举报