欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java_I/O流_总结

程序员文章站 2022-03-22 15:20:40
...

Java_I/O流_总结
            
    
    博客分类: Java Java 

流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象

 

一开始需要注意的就是,流所处理的参照中心始终是程序Java_I/O流_总结
            
    
    博客分类: Java Java 

 

 

 

Java流类图结构:

Java_I/O流_总结
            
    
    博客分类: Java Java 

 

字节流和字符流所处理的问题有所区别,字节流是以 8bits 为单位处理问题,而在Java中,字符流处理的最基本的单元是Unicode码元,其大小为 16bits。

 

设备上的数据无论是图片或者视频,文字,它们都以二进制存储的。二进制的最终都是以一个8位为数据单元进行体现,所以计算机中的最小数据单元就是字节。意味着,字节流可以处理设备上的所有数据,所以字节流一样可以处理字符数据。

 

 

结论:只要是处理纯文本数据,就优先考虑使用字符流。 除此之外都使用字节流。

 

一)输入输出流:

输入流只能进行读操作,输出流只能进行写操作:

  • 输入流:InputStream或者Reader:从文件中读到程序中;
  • 输出流:OutputStream或者Writer:从程序中输出到文件中;

 

二)结点流:

直接与数据源相连,读入或读出,但直接使用节点流,读写不方便,这是由于每当处理一次,就会直接进行一次访存,这样频繁的处理必然会降低CPU的效率,于是增加了处理流。

 

 

三)处理流:

Java_I/O流_总结
            
    
    博客分类: Java Java 

所谓处理流,是指在以结点为基础之上,增加了一个缓冲区,可以将其视为一个黑箱或管道,里面包含了若干功能(1.缓冲功能,避免频繁读写硬盘 2.实现字节流和字符流之间的转换 3.将基础数据类型写入/读出到文件中)

 

 

四)转换流:

实现从字节流到字符流的转换。

 

从文件中读取内容:

import java.io.*;

public class Demo {
    public static void main(String[] args) throws IOException {

        String filename = "Demo.txt";
        BufferedReader buff = new BufferedReader(new FileReader(filename));

        String line;
        while ((line = buff.readLine()) != null) {
            System.out.print((line));
        }

        buff.close();
    }
}

 

 从程序中写入至文件:

import java.io.*;
import java.util.Scanner;

public class Demo {
    public static void main(String[] args) throws IOException {

        String filename = "Demo.txt";
        BufferedWriter buff = new BufferedWriter(new FileWriter(filename));

        Scanner in = new Scanner(System.in);
        System.out.println("Write something: ");

        String str = in.nextLine();
        buff.write(str);
        
        in.close();
        buff.close();
    }
}

 

 

相关标签: Java