栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

关于Java中流的学习

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于Java中流的学习

    流的分类

    输入流和输出流是以内存为参照物的,读入内存是输入流,内存中存到硬盘叫输出流。
    输入流 :把数据从其他设备上读取到内存中的流。
    输出流 :把数据从内存 中写出到其他设备上的流。
    
    按照读取或写入数据方式不同分为字节流和字符流。
    字节流 :以字节为单位,读写数据的流。
    字符流 :以字符为单位,读写数据的流。
    
    我们必须明确一点的是,一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一样如此。所以,字节流可以传输任意文件数据。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底层传输的始终为二进制数据。
    

Java中所有的流都是在java.io包中,有四大类,这四个都是抽象类。
字节输入流:java.io.InputStream
字节输出流:java.io.OutputStream
字符输入流:java.io.Reader
字符输出流:java.io.Writer
(Stream结尾的是字节流,Reader和Writer结尾的都是字符流)
所有的流都实现了closeable()接口用完的时候要记得close(),所有的输出流都实现了flushable()接口。用完的时候要flush()刷新一下。

2.要掌握的16个流
注意:IDEA默认的当前路径是工程Project的根目录
文件专属:
java.io.FileInputStream:万能的,任何类型的文件都可以读。
java.io.FileOutputStream
java.io.FileReader
java.io.FileWriter

转换流:
java.io.InputStreamReader
java.io.OutputStreamWriter

缓冲流:
java.io.BufferedInputStream
java.io.BufferedOutputStream
java.io.BufferedReader
java.io.BufferedWriter

数据流:
java.io.DataInputStream
java.io.DataOutputStream

标准输出流:
java.io.PrintStream
java.io.PrintWriter

对象专属流:
java.io.ObjectInputStream
java.io.ObjectOutputStream

package IO;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Arrays;

public class Test01_FileInputStream {
    public static void main(String[] args) {
        FileInputStream inputStream = null;
        try {
            //inputStream = new FileInputStream("src/static/1.txt");
            //read方法,依次读取一个字节,返回值是这个字节的ascii值
            // 读完了之后返回的-1。
            //int a = inputStream.read();
            //System.out.println(String.valueOf((char)a));


            
            
//            inputStream = new FileInputStream("src/static/2.txt");
//            byte[] bytes = new byte[250];
//            int a = inputStream.read(bytes);
            //System.out.println(a);
            //new String()可以传入一个byte数组,后面还可以在跟两个参数,不跟的话默认是
            //全部转换成字符串,跟的第一个参数是起始下标,后面一个是转换多少个字符
            //System.out.println(new String(bytes,0,a));

            //available()方法返回这个流当中未读取的字节数量
            //skip方法表示跳过几个字节不读,这个会导致available()返回值减小
            inputStream = new FileInputStream("src/static/2.txt");
            System.out.println(inputStream.available());
            inputStream.skip(2);
            System.out.println(inputStream.available());

        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (inputStream!=null){
                try {
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

package IO;

import java.io.FileOutputStream;
import java.io.IOException;

public class Test02_FileOutputStream {
    public static void main(String[] args) {
        FileOutputStream outputStream= null;

        try {
//            outputStream = new FileOutputStream("src/static/3.txt");
            outputStream = new FileOutputStream("src/static/3.txt",true);
            byte[] bytes = new byte[5];
            for (Byte i = 0; i < bytes.length; i++) {
                bytes[i]=(byte) (i+97);
            }

            
            //outputStream.write(bytes);

            outputStream.write(bytes);

            outputStream.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (outputStream!=null){
                try {
                    outputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

package IO;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class Test03_FileCopy {
    public static void main(String[] args) {
        FileInputStream inputStream = null;
        FileOutputStream outputStream = null;

        try {
            inputStream = new FileInputStream("src/static/1.txt");
            outputStream = new FileOutputStream("src/static/4.txt");

            byte[] bytes = new byte[1024];
            int a =0;
            try {
                while (a!=-1){
                    a = inputStream.read(bytes);
                    outputStream.write(bytes,0,a);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }


            try {
                outputStream.flush();
            } catch (IOException e) {
                e.printStackTrace();
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }finally {
            if (outputStream!=null){
                try {
                    outputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (inputStream!=null){
                try {
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

package IO;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Test04_FileReader {
    public static void main(String[] args) {
        

        FileReader reader = null;
        char[] chars = new char[1024];
        int a = 0;

        try {
             reader = new FileReader("D:\word文档\电子版练习册\JAVA\00-JAVA基础\project\src\static/1.txt");

            try {
                while ((a=reader.read(chars))!=-1){

                    System.out.print(new String(chars,0,a));
                }
            } catch (IOException e) {
                e.printStackTrace();
            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }finally {
            if (reader!=null){
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

package IO;

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

public class Test05_FileWriter {
    public static void main(String[] args) {
        FileWriter writer = null;

        try {
            writer = new FileWriter("src/static/5.txt",true);
            writer.write("你好,世界!");

            writer.flush();

        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (writer!=null){
                try {
                    writer.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }
}

package IO;

import java.io.BufferedReader;
import java.io.FileReader;

public class Test06_BufferedReader {
    public static void main(String[] args) throws Exception{
        
        
        BufferedReader reader = new BufferedReader(new FileReader("src/static/1.txt"));
        String s;
        while ((s=reader.readLine())!=null)
        System.out.println(s);
    }
}

package IO;

import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;

public class Test07_OutputStreamWriter {
    public static void main(String[] args) throws Exception{
        //BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("src/static/6.txt")));
        BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("src/static/6.txt",true)));
        writer.write("输出字节流转换成字符输出流");
        writer.flush();
        writer.close();
    }
}

package IO;

import java.io.DataOutputStream;
import java.io.FileOutputStream;

public class Test08_DataOutputStream {
    public static void main(String[] args) throws Exception{
        
        DataOutputStream stream = new DataOutputStream(new FileOutputStream("src/static/7.txt"));

        stream.write((byte) 97);
        stream.write(1);
        stream.writeBytes("你好");


        stream.flush();
        stream.close();

    }
}

package IO;

import java.io.FileOutputStream;
import java.io.PrintStream;

public class Test09_PrintStream {
    public static void main(String[] args) throws Exception {
        
        PrintStream stream = System.out;
        stream.println("nihao");

        stream.println("sss");

        
        PrintStream stream1 = new PrintStream(new FileOutputStream("src/static/8.txt"));
        System.setOut(stream1);
        stream = System.out;
        stream.println("Hello World!");
    }
}

package IO;

import java.io.File;
import java.io.IOException;

public class Test10_File {
    public static void main(String[] args) {
        File file = new File("src/static/9.txt");
        boolean exist;
//        判断文件存不存在
        exist = file.exists();
        //判断是否是一个文件
        exist = file.isFile();


        System.out.println(exist);
//        if (!exist){
//            file.mkdir();
//            try {
//                System.out.println(file.createNewFile());
//                System.out.println("创建了一个文件");
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
//        }

    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/709243.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号