c语言读取文件到inputstream,FileInputStream BufferedInputStream

package io2;

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

public class IOUtils {

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

FileOutputStream fos =

new FileOutputStream("src/test2.txt");

//用io流的构造方法来创建文件,可以立刻在硬盘直接创建文件

//如果以前有过同名的文件,直接覆盖,如果要追加内容

// new FileOutputStream("src/test2.txt",true);

fos.write('A');

fos.write('B');

int a = -2;//0xfffffffe

//  11111111 11111111 11111111 11111110

fos.write(a>>>24);//ff

fos.write(a>>16);//ff

fos.write(a>>8);//ff

fos.write(a);//fe

//  中国: 中: d6d0

byte[] str = "中国".getBytes("GBK");

fos.write(str);

fos.flush();

fos.close();

printInput("src/test2.txt");

copy2("c:/JDK_API_1_6_zh_CN.CHM","d:/JDK_API_1_6_zh_CN.CHM");

} //输入流

public static void printInput(String name) throws IOException{

//    创建输入流

FileInputStream fis = new FileInputStream(name);

int b ;

int i = 1;

//把一个文件全部读取出来,结尾-1

while((b=fis.read())!=-1){//在io当中最固定的格式

System.out.print(Integer.toHexString(b)+" ");

//每隔8个,换行

if(i++%8==0){

System.out.println();

}

}

fis.close();

}

//复制(第1版)性能太差

public static void copy1(String src,String target) throws IOException{

//    输入流(读取文件内容)

FileInputStream fis = new FileInputStream(src);

//    输出流(写文件内容)

FileOutputStream fos = new FileOutputStream(target);

int b ;

//把从输入流中读取的内容,写入到输出流中

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

fos.write(b);

}

fis.close();

fos.close();

}

//  复制(第2版),使用缓冲流,来提高性能

public static void copy2(String src,String target) throws IOException{

//    输入流

InputStream in = new

BufferedInputStream(new FileInputStream(src));

//  依赖:BufferedInputStream依赖于FileInputStream

OutputStream out = new

BufferedOutputStream(new FileOutputStream(target));

int b ;

while((b = in.read())!=-1){

out.write(b);

}

in.close();

out.close();

}

}

阅读(1643) | 评论(0) | 转发(0) |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值