黑马程序员技术交流社区

标题: 【济南校区】java基础-IO流之字节流 [打印本页]

作者: 小鲁哥哥    时间: 2018-8-2 21:12
标题: 【济南校区】java基础-IO流之字节流
【济南校区】java基础-IO流之字节流

概述
IO流分类:
    流向
             输入流        读取数据        FileReader        Reader
             输出流        写出数据        FileWriter        Writer
     数据类型
              字节流        
                       字节输入流   读取数据        InputStream
                      字节输出流   写出数据        OutputStream
                   字符流
                       字符输入流  读取数据        Reader
                    字符输出流  写出数据        Writer
利用字符复制文本文件
利用字符流将当前工程下的IODemo.java拷贝到d盘的a文件夹下
案例代码
[Java] 纯文本查看 复制代码
package com.itheima_02;



import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;



/*

* 使用字符流复制文本文件

*

* 数据源        IODemo.java

* 目的地        d:\\IODemo.java



*

*/

public class FileCopyDemo {

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

//创建字符输入流对象

FileReader fr = new FileReader("IODemo.java");

//创建字符输出流对象

FileWriter fw = new FileWriter("d:\\IODemo.java");


//一次读写一个字符


/*int ch;

while((ch = fr.read()) != -1) {

fw.write(ch);

fw.flush();

}*/


//一次读写一个字符数组

int len;//用于存储读到的字符个数

char[] chs = new char[1024];

while((len = fr.read(chs)) != -1) {

fw.write(chs,0,len);

fw.flush();

}


//释放资源

fw.close();

fr.close();

}

}
利用字节流复制文本文件
利用字节流将当前工程下的IODemo.java拷贝到d盘下
案例代码
[Java] 纯文本查看 复制代码
    package com.itheima_03;



import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;



/*

* 使用字节流复制文本文件

*

* 数据源        IODemo.java

* 目的地        d:\\a\\IODemo.java

*



*/

public class FileCopyDemo {

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

//创建字节输入流对象

FileInputStream fis = new FileInputStream("IODemo.java");

//创建字节输出流对象

FileOutputStream fos = new FileOutputStream("d:\\a\\IODemo.java");


//一次读写一个字节

/*int by;

while((by = fis.read()) != -1) {

fos.write(by);

}*/

//一次读写一个字节数组

int len;//存储读到的字节个数

byte[] bys = new byte[1024];

while((len = fis.read(bys)) != -1) {

fos.write(bys,0,len);

}



//释放资源

fos.close();

fis.close();

}

}
复制图片
字节流可以操作所有类型的文件,因为所有的文件在计算机中都是以字节形式存储
而字符流只能用来操作纯文本类型的文件,不能操作字节类型的文件
案例代码
[Java] 纯文本查看 复制代码
package com.itheima_04;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;



/*

* 分别使用字符流和字节流复制图片

*

* 二进制文件只能使用字节流进行复制(使用windows自带记事本打开读不懂的)

* 文本文件的复制即可使用字符流,也可以使用字节流

*

*/

public class CopyImage {

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

//method();


//创建字节输入流对象

FileInputStream fis = new FileInputStream("传智学院.jpg");

//创建字节输出流对象

FileOutputStream fos = new FileOutputStream("d:\\传智学院.jpg");


//一次读写一个字节数组

int len;//用于存储读到的字节个数

byte[] bys = new byte[1024];

while((len = fis.read(bys)) != -1) {

fos.write(bys,0,len);

}


//释放资源

fos.close();

fis.close();

}



private static void method() throws FileNotFoundException, IOException {

//创建字符输入流对象

FileReader fr = new FileReader("传智学院.jpg");

//创建字符输出流对象

FileWriter fw = new FileWriter("d:\\传智学院.jpg");


//一次读写一个字符数组

int len;//用于存储读到的字符个数

char[] chs = new char[1024];

while((len = fr.read(chs)) != -1) {

fw.write(chs,0,len);

fw.flush();

}


//释放资源

fw.close();

fr.close();

}

}
【黑马程序员济南】小鲁哥哥全学科技术整合帖(一贴在手!天下我有!)

如果你想了解更多黑马课程,如果你想加入黑马这个大家庭学习先进技术,光交天下好友,那就快来吧!
     黑马程序员济南中心联系电话:0531-55696830







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2