• java I/O的基本使用


    1.什么是I/O

      a.I/O也称为:输入输出,可以理解为In,Out

      b.I/O流:读取键盘键入的字符,硬盘上的文件

      c.处理数据的类型分类:字节流、字符流

      字节流:以Stream结尾的,可以处理图片、文字、音频、视频等,读取一个字节返回一个字节。

      字符流:以Reader或Writer结尾,仅能处理纯文本数据,读取一个或多个字节,再查询指定编码表,最后返回字符。

      字节流代码实例演示:

      

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    
    /**
     * Created by Pres_cheng on 2016/9/4.
     */
    public class UsingFileStream {
        public static void main(String args[]) {
            File file = new File("D:\Ideaworkspace\UsingFileStream\src\hello.txt");
            if (!file.exists()) {
                try {
                    file.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            try {
                FileInputStream fis = new FileInputStream(file);
                byte[] bytes = new byte[1024];
                String str = "";
                while (fis.read(bytes) != -1) {
                    str += new String(bytes,"utf-8");
                }
                System.out.println(str);
                //每次使用完流后都要关闭
                fis.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
    
    }
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    /**
     * Created by Pres_cheng on 2016/9/4.
     */
    public class UsingFileOutStream {
        public static void main(String args[]){
            //写入的数据
            String str = "大家好,我是学生123456abc";
            //文件的路径
            File file =new File("D:\Ideaworkspace\UsingFileStream\src\hello");
            if(!file.exists()){
                try {
                    //如果不存在就创建文件
                    file.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            try {
                //实例化输出流
                FileOutputStream fos = new FileOutputStream(file);
                byte [] btyes = str.getBytes();
                fos.write(btyes);
                fos.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

      复制图片

    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    /**
     * Created by Pres_cheng on 2016/9/4.
     */
    public class CopyFile {
        public static void main(String args[]){
    
            try {
                FileInputStream fis = new FileInputStream("D:\Ideaworkspace" +
                        "\UsingFileStream\img.jpg");
                FileOutputStream fos = new FileOutputStream("D:\Ideaworkspace" +
                        "\UsingFileStream\newImg.jpg");
                byte [] bytes = new byte[1024];
                while (fis.read(bytes) != -1){
                    fos.write(bytes);
                }
                fis.close();
                fos.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

      

      字符流实例演示:

      

    import java.io.*;
    
    /**
     * Created by Pres_cheng on 2016/9/4.
     */
    public class UsingStreamReader {
        public static void main(String[] args) {
            try {
                //实例化字节流
                FileInputStream fis = new FileInputStream("D:\Ideaworkspace" +
                        "\UsingFileReaderAndWriter\src\test.txt");
                //将字节流转化给字符流
                InputStreamReader isr = new InputStreamReader(fis, "utf-8");
                FileOutputStream fos = new FileOutputStream("D:\Ideaworkspace" +
                        "\UsingFileReaderAndWriter\src\newTest.txt");
                OutputStreamWriter osw = new OutputStreamWriter(fos,"utf-8");
                char[] chars = new char[100];
                int i;
    //            String str = "";
                while ((i = isr.read(chars)) != -1){
    //                str += new String(chars,0,i);
                    osw.write(chars,0,i);
                }
    //            System.out.println(str);
                //关闭流,按照先打开后关闭后打开先关闭的原则
                osw.close();
                fos.close();
                isr.close();
                fis.close();
    
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

     

  • 相关阅读:
    利用EZMorph复制bean
    JAVA中使用FTPClient上传下载
    戏说java web开发中的listener和filter
    FastCGI的并发处理
    XPATH学习总结
    [Linux] gdb crash之后,杀掉僵尸进程的办法
    JAVA反射使用手记
    在centos5下安装配置VNC
    开始FastCGI
    log4php配置文件实例
  • 原文地址:https://www.cnblogs.com/prescheng/p/5839911.html
Copyright © 2020-2023  润新知