学习笔记——输入输出处理

这篇博客主要介绍了Java中的输入输出处理,包括I/O流的概述,字节流的基类InputStream和OutputStream,以及文件流的使用。通过具体代码实例展示了如何进行文件内容的覆盖和追加操作,同时涉及了图片类型的判断。
摘要由CSDN通过智能技术生成

输入输出处理

  1. I/O流概述
    一般分为输入流(Input Stream)和输出流(Output Stream) 两类。

    输入流:数据提供者,可从中读取数据出来。
    输出流:数据接收者,可往其中写数据。
    
  2. 字节流 —— 基类:InputStream
    java中每一种字节流的基本功能依赖于基本类InputStream和OutputStream,它们是抽象类,不能直接使用。

    2.1 **InputStream类的方法:**
    	read():从流中读入数据
    	skip():跳过流中若干字节数
    	available():返回流中可用字节数
    	mark():在流中标记一个位置
    	reset():返回标记过的位置 
    	markSupport():是否支持标记和复位操作
    	close():关闭流
    2.2 **OutputStream类的方法:**
    	write(int b):将一个整数输出到流中(只输出低位字节,为抽象方法)
    	write(byte b[ ]):将字节数组中的数据输出到流中
    	write(byte b[],int off , int len):将数组b中从off指定的位置开始,长度为len的数据输出到流中
    	flush():刷空输出流,并将缓冲区中的数据强制送出
    	reset():返回标记过的位置 
    	close():关闭流
    

3.文件流 —— 对文件的操作

	3.1 在I/O处理中,最常见的就是对文件的操作:
	    用于读写本地文件系统中的文件
		FileInputStream,FileOutputStream
		描述本地文件系统中的文件或目录
		File,FileDescriptor
		接口,主要用于实现文件名查找模式的匹配
		FilenameFilter
		提供对本地文件系统中文件的随机访问支持
		RandomAccessFile
	3.2 文件流的构造方法:
		FileInputStream(File f):打开一个以f 描述的文件作为输入
		FileInputStream(String name):打开一个文件路径名为name的文件作为输入
		FileOutputStream(File f):创建一个以f描述的文件作为输出,文件如果已经存在,则其内容被清空
		FileOutputStream(String name):创建一个文件路径名为name的文件作为输出,文件如果已经存在,则其内容被清空
		FileOutputStream(String name,Boolean append):创建一个文件路径名为name的文件作为输出,文件如果已经存在,则在该输出上输出的内容被接到原有内容之后
	3.3 概念
		File,File(Input/Output)Stream,RandomAccessFile是处理本地文件的类
		Data(Input/Output)Stream是一个过滤流的子类,借此可以读写各种基本数据,在文件和网络中经常使用。如:readByte,writeBoolean等
		Buffered(Input/Output)Stream适合与一个处理的输出作为另一个处理的输入的情况

4.代码事例—— 文件A到文件B的内容覆盖或内容追加

 	import java.io.*;

public class StreamDemo {
   
    public static void main(String[] args) throws IOException {
   
		// 这边直接调用
        Filestream();
		// cat();
    }


    /**
     * 将A文件复制到B文件中(覆盖)
     */
    public static void Filestream() throws IOException {
   
        FileInputStream fis = null;
        FileOutputStream fos = null;
        try {
   
            // inputStream
            File inFile = new File("D:\\work\\java\\学习\\9.5\\file.txt");
            fis = new FileInputStream(inFile);
            System.out.println(fis + "shishi");
            // outStream
            File outFile = new File("D:\\work\\java\\学习\\9.5\\file2.txt");
            fos = new FileOutputStream(outFile);

            int c;
            while ( (c = fis.read()) != -1){
   
                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值