JAVA--IO

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA--IO相关的知识,希望对你有一定的参考价值。

经过一天的学习,基本已经对JAVA--IO有了一定的认识,现在就和大家分享一下。

  JAVA.IO包中定义了多种流的类型(类或抽象类)来实现输入和输出功能,可以从不同的角度对其进行分类:

  按数据流的方向不同可以分为输入流和输出流

  按处理数据单位的不同可以分为字节流和字符流

  按照功能的不同可以分为节点流和处理流

技术分享

上图就是JAVA--io中流的分类;看到上图你一定想问输入流和输出流是以什么来区分的,输入流和输出流均是以程序的角度来度量的。

闲话少聊,现在直奔主题:

一、读取指定文件中的内容(以字节流的方式读取)

技术分享
public class testFileInputstream {

    /**文件输入流(字节流输入)
     * @param args
     */
    public static void main(String[] args) {
        FileInputStream input = null;
        int b = 0;
        try {
            input = new FileInputStream("E:\\\\JSP\\\\jsp_demo001\\\\index.jsp");
        } catch (FileNotFoundException e) {
            System.out.println("文件不存在");
            System.exit(0);
        }
        long num = 0;
        try {
            while((b=input.read())!=-1){
                System.out.print((char)b);
                num++;
            }
            input.close();
            System.out.println();
            System.out.println("共读取:"+num+"个字节");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
技术分享

代码不难,大家如有疑问请留言。

二、读取指定文件中的内容(以字符流的方式读取)

技术分享
public class Filereader {

    /**文件输入流(字符流输入)
     * @param args
     */
    public static void main(String[] args) {
        FileReader input = null;
        int b = 0;
        try {
            input = new FileReader("E:\\\\JSP\\\\jsp_demo001\\\\index.jsp");
        } catch (FileNotFoundException e) {
            System.out.println("文件不存在");
            System.exit(0);
        }
        long num = 0;
        try {
            while((b=input.read())!=-1){
                System.out.print((char)b);
                num++;
            }
            input.close();
            System.out.println();
            System.out.println("共读取:"+num+"个字节");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
技术分享

在这里给大家说明一点,字节流和字符流的区别,字节流就是一个字符一个字符的来读;字符流就不同的,它是一个字符一个字符的来读;

三、文件输出流(以字节的方式)

技术分享
public class testFileOutputStream {

    /**文件输出流(字节流)
     * @param args
     */
    public static void main(String[] args) {
        int b = 0;
        FileInputStream input = null;
        FileOutputStream output = null;
        try {
            input = new FileInputStream("E:\\\\JSP\\\\jsp_demo001\\\\index.jsp");
            //如果指定路径下不存在该文件,系统会自动为我们创建一个文件
            output = new FileOutputStream("E:\\\\JSP\\\\jsp_demo001\\\\index1.jsp");
            //设置为true的话,会在指定文件下进行复制,不删除原文件
            //output = new FileOutputStream("E:\\\\JSP\\\\jsp_demo001\\\\index1.jsp", true);
        } catch (FileNotFoundException e) {
            System.out.println("指定文件不存在");
            System.exit(0);
        }
        try {
            while((b=input.read())!=-1){
                output.write((char)b);
            }
            input.close();
            output.close();
        } catch (IOException e) {
            System.out.println("文件复制错误");
            System.exit(0);
        }
        System.out.println("文件复制完成");
    }
}
技术分享

四、文件输出流(以字符的方式)

技术分享
public class Filewriter {

    /**文件输入流(字符流输出)
     * @param args
     */
    public static void main(String[] args) {
        FileWriter output = null;
            try {
                output = new FileWriter("E:\\\\JSP\\\\jsp_demo001\\\\cn.txt");
            } catch (IOException e) {
                System.out.println("文件路径有问题");
                System.exit(0);
            }
        try {
                for(int i=0 ; i<50000; i++){
                    output.write(i);
                }
            output.close();
            System.out.println("保存完成");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
技术分享

最后给大家介绍一个关于视频文件的读取和保存:

技术分享
public class FileOutputStream_media {

    /**文件输出流(字节流)
     * @param args
     */
    public static void main(String[] args) {
        int b = 0;
        FileInputStream input = null;
        FileOutputStream output = null;
        try {
            input = new FileInputStream("E:\\\\JSP\\\\jsp_demo001\\\\move.avi");
            //如果指定路径下不存在该文件,系统会自动为我们创建一个文件
            output = new FileOutputStream("E:\\\\JSP\\\\jsp_demo001\\\\move1.avi");
        } catch (FileNotFoundException e) {
            System.out.println("指定文件不存在");
            System.exit(0);
        }
        try {
            while((b=input.read())!=-1){
                output.write((char)b);
            }
            input.close();
            output.close();
        } catch (IOException e) {
            System.out.println("文件复制错误");
            System.exit(0);
        }
        System.out.println("文件复制完成");
    }
}
技术分享

我不喜欢长篇大论的文字,就喜欢这种直接完整的代码,当然上面的每个地方我都做了注释,如果在你的学习过程中有什么疑问,请留言,我一定会尽快给你答复。

以上是关于JAVA--IO的主要内容,如果未能解决你的问题,请参考以下文章

java.io.ByteArrayInputStream

Android android.view.InflateException Binary XML 文件第 16 行:膨胀类片段时出错

将位图从片段保存到内部/外部存储[关闭]

Camel-Kafka java.io.EOFException - NetworkReceive.readFromReadableChannel

java.io.StreamCorruptedException:无效类型代码:00

java.io.File 与 java.nio.Files 哪个是新代码中的首选?