A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

【济南校区】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


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马