美文网首页
Java 基础 IO流

Java 基础 IO流

作者: bfx1000 | 来源:发表于2018-10-24 22:16 被阅读0次

    文章转载自http://wentao365.iteye.com/blog/1374731


    字节流和字符流区别?

    种类 基本单位 处理类型 使用缓冲区 输入类 输出类
    字节流 字节(8bit) 所有类型 未使用 InputStream OutputStream
    字符流 字符(16bit) 文本类型 使用(buffer) Reader Writer

    方法一:字节流

    import java.io.*;
    public class StreamTest1 {
        public static void main(String[] args) {
    
            File file = new File("G:\\github\\TestJava\\data3.txt");
            try {
                InputStream fileInputStream = null;
                fileInputStream = new FileInputStream(file);
                int i = 0;
                while ((i = fileInputStream.read()) != -1) {
                    System.out.print((char) i + "");
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
    
        }
    }
    

    编程思路:

    FileInputStream.read()返回当前字节文件对应的整数,或者文件读取到末尾返回-1
    

    本地文件:用editPlus编辑文本文件如下,并保存为utf-8


    结果:


    缺点:不能处理中文,每个字节都需要读写硬盘


    方法二:字符流

    package demo;
    import java.io.*;
    
    class StreamTest{
        public static void main (String[] args)throws IOException{
    
    
            FileInputStream inputStream  = new FileInputStream(new File("G:\\github\\TestJava\\data.txt")); 
            InputStreamReader inputStreamReader=new InputStreamReader(inputStream,"GBK");
            BufferedReader bufferedReader=new BufferedReader(inputStreamReader);
            
            String line;
            StringBuilder sb=new StringBuilder();
            while((line=bufferedReader.readLine())!=null){
                sb.append(line);
            }
            System.out.println(sb);
        }
    }
    

    编程思路:主要三个方法

    FileInputStream() 从本地文件新建输入流
    InputStreamReader() 将输入流读取成字符流
    BufferedReader() 加缓存,append()追加字符串
    

    本地文件:在G:\github\TestJava下新建data.txt,并保存如下内容(默认编码方式GBK,也可以save as 为 utf-8):



    结果:



    优点:使用缓存,可以处理中文
    缺点:没有实现换行

    方法三:用commons-io-*.jar

    import java.lang.*;
    import org.apache.commons.io.FileUtils;
    import java.io.*;
    
    class StreamTest{
        public static void main(String[] args)throws IOException {
            File file = new File("G:\\github\\TestJava\\data.txt");
            String str=FileUtils.readFileToString(file,"GBK");
            System.out.println(str);
        }
    }
    

    结果:



    结论:还是高科技好用。

    相关文章

      网友评论

          本文标题:Java 基础 IO流

          本文链接:https://www.haomeiwen.com/subject/pjkxtqtx.html