package com.heima.stream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Demo4_ArrayCopy {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
demo1();
// demo2();
}
private static void demo2() throws FileNotFoundException, IOException {
FileInputStream fis = new FileInputStream("123.txt");
//创建输入流,读出元素
FileOutputStream fos = new FileOutputStream("321.txt");
//创建输出流,获取元素,(对文件的拷贝)
byte[] arr = new byte[2];
//获取数组中的字符个数
int i;
while((i = fis.read(arr)) != -1) {
//通过while循环判断出数组元素是否输出完
fos.write(arr,0,i);
//通过个数而获取几个字节,从而避免了重复的元素存入
}
fis.close();
fos.close();
}
private static void demo1() throws FileNotFoundException, IOException {
FileInputStream fis = new FileInputStream("123.txt");
//创建输入流对象,读取其中的语句
byte[] arr = new byte[2];
//创建只有一个只有两个元素的数组
int a = fis.read(arr);
//用fis文件中字节传给数组,因为数组的个数只有两个元素,因此只能给两个字节
//然后将给出的字节个数赋给a
System.out.println(a);//所有输出为2
for (byte b : arr) {
//通过遍历输出,遍历出字节
System.out.println(b);//所有输出分别为a b
}
int c = fis.read(arr);
//用fis中的字节传给数组,因为将字节数只有一个,赋给数组一个元素
System.out.println(c);//所有输出为1
for (byte b : arr) {
//通过遍历,输出数组
System.out.println(b);//因赋值给了个元素c,而另一个数组元素B为改变
}
}
}
|
|