首页 > 代码库 > iO练习题

iO练习题

package com.wl.cases;

import java.io.File;

/**
 * 
    (二) 递归实现输入任意目录,列出文件以及文件夹,效果看图
 * @author wanglu
 * @date   2016-11-08
 */
public class CaseDemo_2 {
    public static void main(String[] args) {
        File file = new File("D:");
        printMkdirs(file);
    }
    
    /*
     * 使用递归调用的方式
     */
    public static void printMkdirs(File file){
        File[] listFiles = file.listFiles();
        if(listFiles==null || listFiles.length<0 )
            return;
        for (int i = 0; i < listFiles.length; i++) {
            if(listFiles[i].isDirectory()){
                System.out.println(listFiles[i].getAbsolutePath());
                printMkdirs(listFiles[i]);
            }else{
                System.out.println(listFiles[i].getAbsolutePath());
            }
        } 
    }
}
package com.wl.cases;

import java.io.File;

/**
 * (三) 递归实现列出当前工程下所有.java文件
 * @author wanglu
 * @date   2016-11-08
 */
public class CaseDemo_3 { 
    public static void main(String[] args) {
        File file = new File("E:\\eclipset\\workspace\\IoDemo");
        printProject(file);
    }
    public static void printProject(File file){ 
        File[] listFiles = file.listFiles();
        if(listFiles==null || listFiles.length<0)
            return;
        for (int i = 0; i < listFiles.length; i++) {
            if(listFiles[i].isDirectory()){
                //listFiles[i].getName().contains(".java")
                printProject(listFiles[i]);
            }else{
                /*if(listFiles[i].getName().contains(".java")){
                    System.out.println(listFiles[i].getName());
                }*/
                if(listFiles[i].toString().endsWith(".java")){
                    System.out.println(listFiles[i].getName());
                }
            }
        }
    }
}
package com.wl.cases;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * (四)从磁盘读取一个文件到内存中,再打印到控制台
 * @author wanglu
 * @date   2016-11-08
 */
public class CaseDemo_4 {
    
    public static void main(String[] args) {
        File file = new File("C:\\Users\\wanglu\\Desktop\\HelloWorld.txt");
        printConsole(file);
    }
    public static void printConsole(File file){
        //创建一个字节缓冲输入流
        BufferedInputStream bs = null; 
        InputStreamReader ir = null;
        try {
            //创建一个字节输入流
            FileInputStream fs = new FileInputStream(file);
            bs = new BufferedInputStream(fs); 
            //创建一个转换流,从字节---字符的转换
            ir = new InputStreamReader(bs);
            //此处表示创建一个长度跟文件长度大小一样的数组(此处需要改进)
            char[] b = new char[(int)file.length()];
            int len;
            StringBuffer sb = new StringBuffer();
            if((len = ir.read(b))!= -1){  
                sb.append(new String(b,0,len)); 
            }
            System.out.println(sb);
        }catch (IOException e) { 
            e.printStackTrace();
        }finally{
            if(ir!=null)
                try {
                    ir.close();
                } catch (IOException e) { 
                    e.printStackTrace();
                }
            if(bs != null)
                try {
                    bs.close();
                } catch (IOException e) { 
                    e.printStackTrace();
                }
            
        }
        
        
    }
    
}
package com.wl.cases;

import java.io.FileWriter;
import java.io.IOException;

/**
 * (五) 在程序中写一个"HelloJavaWorld你好世界"输出到操作系统文件Hello.txt文件中
 * @author wanglu
 * @date   2016-11-08
 */
public class CaseDemo_5 {
    public static void main(String[] args) {
        printToFile();
    }
    public static void printToFile(){
        //定义一个字符输出流
        FileWriter fw = null;
        try {
            //定义一个字符串
            String str = "HelloJavaWorld你好世界";
            fw = new FileWriter("Hello.txt");
            fw.write(str);
        } catch (IOException e) { 
            e.printStackTrace();
        }finally{
            if(fw != null)
                try {
                    fw.close();
                } catch (IOException e) { 
                    e.printStackTrace();
                }
        } 
    }
}
package com.wl.cases;

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

/*
 * (六) 拷贝一张图片,从一个目录到另外一个目录下 
 * 注: 除文本文件外,其他类型的文件都需要要字节流处理
 * 所以此处我们需要用到字节流
 */
public class CaseDeom_6 {
    public static void main(String[] args) {
        File file = new File("C:\\Users\\wanglu\\Desktop\\1.png");
        File saveFile = new File("save.png");
        copyPhoto(file,saveFile);
    }
    public static void copyPhoto(File file,File saveFile){
        //创建字节缓冲输入流(加速)
        BufferedInputStream bs = null;
        //创建字节缓冲输出流(加速输出)
        BufferedOutputStream bo = null;
        try {
            //创建字节输入流
            FileInputStream fs = new FileInputStream(file);
            bs = new BufferedInputStream(fs);
            //创建字节输出流
            FileOutputStream fo = new FileOutputStream(saveFile);
            bo = new BufferedOutputStream(fo);
            byte[] b = new byte[1024];
            int len;
            while((len = bs.read(b))!= -1){
                bo.write(b, 0, len);
                bo.flush();
            }
        }catch (IOException e) { 
            e.printStackTrace();
        }finally{
            if(bo != null)
                try {
                    bo.close();
                } catch (IOException e) { 
                    e.printStackTrace();
                }
            if(bs != null)
                try {
                    bs.close();
                } catch (IOException e) { 
                    e.printStackTrace();
                }
        } 
    }
}

 

iO练习题