I/O流

在这里插入图片描述

总结:字符流和字节流
字符流:中英文正常显示,只能复制文本文件
字节流:图片,歌

  1. read,input 输入流
  2. write,output 输出流
  3. read,write 字符流
  4. input,output 字节流

一.字符流

1.字符输入流

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

public class Demo1 {
//需求一:将硬盘上的文本文件内容在控制台中打印输出
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
        //字符输入流
		FileReader wj=new FileReader("E:/2021学年第二学期教学资料/Java面向对象程序设计教程/第八模块/教学资料/良心.txt");
	    int aa;    //这里必须定义成整型,Java规定
	    aa=wj.read();  //读取一个字符
	    System.out.println("文件内容:");
	    while(aa!=(-1)){    //ASCII码是从0开始的数字,到255.
	    	System.out.print((char)aa);
	    	aa=wj.read();
	    }
	    wj.close();    //将文件关闭,否则占内存
	}
}

2.字符输出流

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

public class Demo2 {
//需求二:将“良心”的文件复制一份到桌面
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		FileReader fz=new FileReader("E:/2021学年第二学期教学资料/Java面向对象程序设计教程/第八模块/教学资料/良心.txt");
	    //字符输出流
		FileWriter zt=new FileWriter("C:/Users/Administrator/Desktop/做人要讲良心.txt");
	    int a;
	    a=fz.read();
	    while(a!=(-1)){
	    	zt.write(a);
	    	a=fz.read();
	    }
	    fz.close();
	    zt.close();
	}

}

二.字节流

1.字节输入流

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


public class Demo3 {
	//需求一:将硬盘上的文本文件内容在控制台中打印输出
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
        //字节输入流
		FileInputStream wj=new FileInputStream("E:/2021学年第二学期教学资料/Java面向对象程序设计教程/第八模块/教学资料/良心.txt");
		int aa;
		aa=wj.read();
		System.out.println("文件内容:");
		while(aa!=(-1)){
			System.out.print((char)aa);
			aa=wj.read();
		}
		wj.close();
	}

}

1.字节输出流

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

public class Demo5 {
	//需求:将"青花瓷.mp3"文件复制一份到桌面
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		//字节输入流
        FileInputStream fz=new FileInputStream("E:/2021学年第二学期教学资料/Java面向对象程序设计教程/第八模块/教学资料/DSC00167.JPG");
        //字节输出流
        FileOutputStream zt=new FileOutputStream("C:/Users/Administrator/Desktop/DSC00167.JPG");
        int aa;
        aa=fz.read();
        while(aa!=(-1)){
        	zt.write(aa);
        	aa=fz.read();
        }
        fz.close();
        zt.close();
	}
}

三.缓冲流

作用:起到了“增加速度”的效果

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


public class Demo1 {
	//将硬盘上的"青花瓷.mp3"文件复制一份到桌面
    public static void main(String[] args) throws IOException {
    	//缓冲字节输入流
	    BufferedInputStream hcfz=new BufferedInputStream(new FileInputStream("F:/2021学年第二学期教学资料/Java面向对象程序设计教程/第八模块/教学资料/青花瓷.mp3"));
        //缓冲字节输出流
	    BufferedOutputStream hczt=new BufferedOutputStream(new FileOutputStream("C:/Users/Administrator/Desktop/周杰伦.mp3"));
	    byte[] hc=new byte[2048];  //字节数组,单位字节,数字就是缓冲区大小  
	    int ff;
	    ff=hcfz.read(hc);
	    while(ff!=(-1)){
	    	hczt.write(hc, 0, ff);
	    	ff=hcfz.read(hc);
	    }
	    hczt.flush();    //将流中残留内容全部输出,写在文件关闭之前
	    hcfz.close();
	    hczt.close();
    }
}

四.虚拟内存(硬件)

作用:是用内存来占据内存硬盘,也就是说由硬盘拿出一部分来代替内存。

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;


public class Demo2 {
//大家把这段程序当公式用即可
//功能介绍:把一个长整型的数据发送给另一个变量,实现"发送==>接收"
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
	   //字节数组流(输出)
       ByteArrayOutputStream zjszl=new ByteArrayOutputStream();
       DataOutputStream sjl=new DataOutputStream(zjszl);
       long aa=123456456;
       sjl.writeLong(aa);
       //以上代码实现"发送" 功能(输出)
       byte[] zjsz=zjszl.toByteArray();
       ByteArrayInputStream str=new ByteArrayInputStream(zjsz);
       DataInputStream sjsr=new DataInputStream(str);
       long ss;
       ss=sjsr.readLong();
       System.out.println("ss="+ss);
       //以上代码实现"接收"功能(输入)
	}

}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值