InputStream is = System.in;//字节输入流
InputStreamReader isr = new InputStreamReader(is);//输入转换流
BufferedReader br = new BufferedReader(isr);//高效流
PrintWriter pw = new PrintWriter(new FileWriter("/Users/lanou/Desktop/x/hi.txt"));//打印流
String string = "";
//循环打印
while((string = br.readLine()) != null) {
if(string.equals("quit"))
break;
pw.write(string);
}
pw.close();
br.close();
合并流
运用迭代器,参数为InputStream的子类, 迭代遍历后由合并流处理
public static void fun1() throws IOException {
File file1 = new File("1.txt");
File file2 = new File("2.txt");
File file3 = new File("3.txt");
Vector<FileInputStream> vector = new Vector<>();
vector.add( new FileInputStream(file1));
vector.add( new FileInputStream(file2));
vector.add( new FileInputStream(file3));
//获取迭代器
Enumeration<FileInputStream> elements = vector.elements();
//合并流
SequenceInputStream sis = new SequenceInputStream(elements);
//写入一个文件
FileOutputStream fos = new FileOutputStream("");
int len = 0;
byte[] bs = new byte[1024];
while((len = sis.read(bs)) != -1) {
fos.write(bs);
}
sis.close();
fos.close();
}
//将文件切割存储
public static void fun2() throws FileNotFoundException, IOException {
//fun1();
File file1 = new File("");
File file2 = new File("");
FileInputStream fis = null;
FileOutputStream fos = null;
fis = new FileInputStream(file1);
int num = 0;
int len = 0;
byte[] bs = new byte[1024 * 1024];
while((len = fis.read(bs)) != -1) {
fos = new FileOutputStream(file2.getName() + num + ".txt");
fos.write(bs, 0, len);
fos.close();
num++;
}
fis.close();
}
将切割的文件读取出来
Vector<FileInputStream> vector = new Vector<>();
FileInputStream fis = null;
for (int i = 1; i <= 18; i++) {
File file = new File("/Users/lanou/Downloads/day28作业" + File.separator+ i +".suipian");
fis = new FileInputStream(file);
vector.add(fis);
}
Enumeration<FileInputStream> elements = vector.elements();
SequenceInputStream sis = new SequenceInputStream(elements);
FileOutputStream fos = new FileOutputStream("/Users/lanou/Desktop/x/home");
PrintStream ps = new PrintStream(fos);
byte[] bs = new byte[1024 * 1024];
int len = 0;
while((len = fis.read(bs)) != -1) {
ps.write(bs);
}
fis.close();
fos.close();