JavaIO简单代码实例

最近又复习了下JavaIO写了些实例代码都很简单但是能体现大部分方法的用法。

IO流实现文件的拷贝   几种不同的方法:

package com.wxisme.TestIO;

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.OutputStream;

/**
 * 字节流拷贝文本文件
 * @author wxisme
 *
 */

public class StreamOne {

    public static void main(String[] args) {
        String path = "E:" + File.separator + "test.txt";
        File file = new File(path);
        try {
            file.createNewFile();
        } catch (IOException e) {
            System.out.println("创建文件失败");
            e.printStackTrace();
        }
        InputStream is = null;
        try {
            is = new FileInputStream(file);
        } catch (FileNotFoundException e1) {
            e1.printStackTrace();
        }
        String fileName = "E:" + File.separator + "Bullet.java";
        OutputStream os = null;
        try {
            os = new FileOutputStream(fileName,true);
        } catch (FileNotFoundException e1) {
            e1.printStackTrace();
        }
        byte[] b = new byte[10];
        int len = 0;
        try {
            while((len = is.read(b)) != -1) {
                os.write(b, 0, len);
            }
            os.flush();//强制刷出缓冲区
        } catch (IOException e) {

            e.printStackTrace();
        }finally {
            try {
                os.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                is.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        System.exit(0);

    }

}
package com.wxisme.TestIO;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;

/**
 * 字节流拷贝文件
 * @author wxisme
 *
 */

public class StreamTwo {

    public static void main(String[] args) {
        String path = "E:" + File.separator + "test.txt";
        String name = "E:" + File.separator + "Bullet.java";
        Reader r = null;
        try {
            r = new FileReader(name);
        } catch (FileNotFoundException e) {
            System.out.println("创建字符输入流失败");
            e.printStackTrace();
        }
        Writer w = null;
        try {
            w = new FileWriter(path);
        } catch (IOException e) {
            System.out.println("创建字符输出流失败");
            e.printStackTrace();
        }
        char[] cbuf = new char[10];
        int len = 0;
        try {
            while((len = r.read(cbuf)) != -1) {
                //w.write(cbuf);
                w.write(cbuf, 0, len);
            }
            w.flush();//强制刷出
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                w.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                r.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }

}
package com.wxisme.TestIO;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.Scanner;

/**
 * 重定向输入输出 实现文件的拷贝
 * @author wxisme
 *
 */

public class Reset {

    public static void main(String[] args) throws FileNotFoundException {
        String src = "E:" + File.separator + "Bullet.java";
        String path = "E:" + File.separator + "test.txt";
        FileInputStream fis = new FileInputStream(src);
        System.setIn(fis);

        PrintStream ps = new PrintStream(new FileOutputStream(path));
        System.setOut(ps);

        Scanner scan = new Scanner(System.in);
        scan.useDelimiter("\n");//以换行符为分隔符
        while(scan.hasNext()) {
            System.out.println(scan.next());
        }
    }

}

处理流PrintStrream PrintWriter

package com.wxisme.TestIO;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;

/**
 * 使用处理流printStream  printWriter
 * @author wxisme
 *
 */

public class StreamFour {

    public static void main(String[] args) throws IOException {
        String path = "E:" + File.separator + "test.txt";
        PrintStream ps = new PrintStream(new FileOutputStream(path,true));
        ps.print("PrintStream");
        PrintWriter pw = new PrintWriter(new FileWriter(path));
        pw.print("PrintWriter");
        pw.close();
        ps.close();
    }

}

读取单个字符

package com.wxisme.TestIO;

import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import java.util.Scanner;

/**
 * 读取单个字符
 * @author wxisme
 *
 */

public class ReaderOne {

    public static void main(String[] args) throws IOException {
        Scanner scan = new Scanner(System.in);
        String str = scan.next();
        Reader r = new StringReader(str);
        char[] cbuf = new char[10];
        while(r.read(cbuf,0,1) != -1) {
            char c = cbuf[0];
            System.out.println(c);
        }
        r.close();

    }

}

转换流

package com.wxisme.TestIO;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;

/**
 * 使用转换流
 * @author wxisme
 *
 */

public class StreamThree {

    public static void main(String[] args) throws IOException {

        /*
         * 输入流底层使用字节流,然后使用转换流把字节流转换成字符流,并且指定解码字符集。
         * 然后把字符流包装成缓冲流,按行读取文件。
         * 乱码问题的两个主要原因:
         *    1. 解码字符集与编码字符集不统一
         *    2. 读取字节缺少,长度丢失。
         */
        String path = "E:" + File.separator + "Bullet.java";
        BufferedReader br = new BufferedReader(
                new InputStreamReader(
                        new FileInputStream(
                                new File(path)),"utf-8"));
        String str;
        while((str = br.readLine()) != null) {
            System.out.println(str);
        }
        br.close();

    }

}

关闭文件的工具方法的两种写法:

package com.wxisme.TestIO;

import java.io.Closeable;
import java.io.IOException;

/**
 * 关闭文件资源的工具类  有两种实现方法   可以实现一次关闭多个文件,先打开的文件后关闭
 * @author wxisme
 *
 */

public class CloseAll {

    /**
     * 使用多态    可变参数   可以有多个形参以数组的形式   可变形参必须在所有参数的最后
     * @param io
     */
    public static void closeAll1(Closeable ... io) {
        for(Closeable temp : io) {
            if(temp != null) {
                try {
                    temp.close();
                } catch (IOException e) {
                    System.out.println("文件关闭失败");
                    e.printStackTrace();
                }
            }
        }
    }

    /**
     * 泛型方法   使用泛型方法和可变参数
     * @param io
     */

    public static <T extends Closeable> void closeAll2(Closeable ... io) {
        for(Closeable temp : io) {
            if(temp != null) {
                try {
                    temp.close();
                } catch (IOException e) {
                    System.out.println("文件关闭失败");
                    e.printStackTrace();
                }
            }
        }
    }

}
时间: 2024-10-13 03:59:01

JavaIO简单代码实例的相关文章

大数据学习之七——MapReduce简单代码实例

1.关于MapReduce MapReduce是一种可用于数据处理的编程模型,能够支持java.Python.C++等语言.MapReduce程序本质上是并行运行的,因此可以处理大规模数据集,这也是它的优势. 2.使用hadoop分析数据 hadoop提供了并行处理,我们将查询表示成MapReduce作业. MapReduce任务过程分为两个处理阶段:map阶段和reduce阶段.每个阶段都以键/值作为输入和输出,并选择它们的类型.程序员还需要定义两个函数:map函数和reduce函数. Jav

Redis:安装、配置、操作和简单代码实例(C语言Client端)[转]

我转的地址: http://blog.csdn.net/hj19870806/article/details/8724907 听说游戏的用的比较多,所以了解下. --以下为转载内容 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMware主持. 如何安装Redis? Redis的官方下载站是http://redis.io/download,可以去上面下载最

从一些简单代码实例彻底理解面向对象编程思想|OOP本质是什么?

从Rob Pike 的 Google+上的一个推看到了一篇叫<Understanding Object Oriented Programming>的文章,我先把这篇文章简述一下,然后再说说老牌黑客Rob Pike的评论. 先看这篇教程是怎么来讲述OOP的.它先给了下面这个问题,这个问题需要输出一段关于操作系统的文字:假设Unix很不错,Windows很差. 这个把下面这段代码描述成是Hacker Solution.(这帮人觉得下面这叫黑客?我估计这帮人真是没看过C语言的代码) 1 2 3 4

Javascript 实现简单计算器实例代码

Javascript 实现简单计算器实例代码 这篇文章主要介绍了Javascript 实现简单计算器实例代码的相关资料,需要的朋友可以参考下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

ul、li列表简单实用代码实例

ul.li列表简单实用代码实例: 利用ul和li可以实现列表效果,下面就是一个简单的演示. 代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.51texiao.cn/" /> <title>蚂蚁部落</title> &

运用Unity实现依赖注入[结合简单三层实例]

一:理论部分 依赖注入:这是 Ioc 模式的一种特殊情况,是一种基于改变对象的行为而不改变类的内部的接口编程技术.开发人员编写实现接口的类代码,并基于接口或者对象类型使用容器注入依赖 的对象实例到类中.用于注入对象实例的技术是接口注入.构造函数注入.属性(设置器)注入和方法调用注入. Unity是微软企业库一部分,是一个轻量级.可扩展的依赖注入容器,支持构造函数.属性和方法调用注入: 针对依赖注入以前我也写过一篇结合三层的文章:spring.net 结合简单三层实例 二:实例简介 1:本实例将通

jquery实现的选项卡的嵌套代码实例

jquery实现的选项卡的嵌套代码实例:关于选项卡功能大家一定都不会陌生,无非就是鼠标点击或者悬浮能够切换相关的内容.通常情况下,大家见到的选项卡都是没有嵌套功能的,也就是说就是完成了一层切换效果,本章节分享一段代码实例,实现了选项卡的嵌套功能,也就是选项卡中嵌套有选项卡功能,也就能够容纳更多的内容.代码如下: <!DOCTYPE html><html> <head> <meta charset=" utf-8"> <meta na

使用box-shadow属性实现圆角效果代码实例

使用box-shadow属性实现圆角效果代码实例:通常实现圆角效果我们使用border-radius,其实我们也可以使用box-shadow属性来实现.两个属性的具体用法这里就不多介绍了,具体可以参阅以下两个文章:(1).圆角效果可以参阅CSS3实现圆角效果一章节.(2).box-shadow可以参阅CSS3的box-shadow属性用法详解一章节.代码实例: <!DOCTYPE html> <html> <head> <meta charset=" u

兼容IE6的最小高度代码实例

兼容IE6的最小高度代码实例:虽然IE6浏览器的市场正在逐渐缩小,并且在不久的将来就难觅其身影,但是当前还是有不少的用户.此浏览器并不支持min-height属性,下面就介绍一下如何实现IE6兼容此属性,由于代码比较简单,下面直接给出代码,如下: min-height: 200px; _height: 200px; / hack for ie6 */ 原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=15771 更多内容可以参阅: