博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaIO简单代码实例
阅读量:6462 次
发布时间:2019-06-23

本文共 7217 字,大约阅读时间需要 24 分钟。

        最近又复习了下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 
void closeAll2(Closeable ... io) { for(Closeable temp : io) { if(temp != null) { try { temp.close(); } catch (IOException e) { System.out.println("文件关闭失败"); e.printStackTrace(); } } } } }

 

转载于:https://www.cnblogs.com/wxisme/p/4375619.html

你可能感兴趣的文章
node中非常重要的process对象,Child Process模块
查看>>
Webserver管理系列:3、Windows Update
查看>>
DataGridView 输入数据验证格式(实例)
查看>>
HDOJ 2151
查看>>
Foundation框架 - 快速创建跨平台的网站页面原型
查看>>
open-falcon
查看>>
doc2vec使用说明(一)gensim工具包TaggedLineDocument
查看>>
Q:图像太大,在opencv上显示不完全
查看>>
利用ItextPdf、core-renderer-R8 来生成PDF
查看>>
NavigationController的使用
查看>>
多线程编程之Windows环境下创建新线程
查看>>
Unity3D NGUI 给button按钮添加单间事件
查看>>
密码的校验.大小写字母,数字,特殊字符中的至少3种
查看>>
ios 不同sdk4.3 6.0版本号,关于方法的兼容性的通用方法
查看>>
Webstorm常用快捷键备忘
查看>>
js滚动加载到底部
查看>>
Virtualbox 虚拟机网络不通
查看>>
java概念基础笔记整理
查看>>
leetcode124二叉树最大路径和
查看>>
超级账本Fabric区块链用弹珠游戏Marbles 部署
查看>>