您的位置:首页 > 编程语言 > Java开发

java的IO之字节流

2017-06-26 16:42 295 查看

1.文件流: 顾名思义,程序和文件打交道

此时我们谈及的文件,值得是纯文本文件(txt的,不要使用Word,Excel),

----------------------------------------------------------------- 

在字节流中,暂时不要使用中文.

FileInputStream:     文件的字节输入流

FileOutputStream:  文件的字节输出流





2.文件拷贝操作和资源的正确关闭

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

public class IODemo {
public static void main(String[] args) {
//test1();
test2();
}
//原始的拷贝,需要释放资源,很麻烦
private static void test1() {
InputStream in = null;
OutputStream out = null;
try {
//创建源
in = new FileInputStream("a.txt"); //需要先准备一个a.txt放到项目路径下
//创建目标
out = new FileOutputStream("aCopy.txt");

byte[] by = new byte[1024];
int len = 0;
while ((len = in.read(by)) != -1) {
out.write(by, 0, len);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally { //释放资源
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (out != null) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
//JDK1.7新特性,资源自动关闭.需要把源和目标的创建放到try语句中的一对()中
private static void test2() {
try (
//创建源
InputStream in = new FileInputStream("a.txt"); //需要先准备一个a.txt放到项目路径下
//创建目标
OutputStream out = new FileOutputStream("aCopy.txt");
)
{
byte[] by = new byte[1024];
int len = 0;
while ((len = in.read(by)) != -1) {
out.write(by, 0, len);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}




JDK1.7后的改变

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息