打印流PrintStream
/**
* PrintStream:
* 1.他提供了打印方法可以对多种数据类型值进行打印,并保持数据的表示形式
* 2.不抛IOException
* 构造函数接受三种类型的值:字符串路径,File对象,字节输出流
*/
PrintStream out = new PrintStream("print.txt");
out.write(609);//只写最低8位 609和97写进去都是a
out.print(97);//将97先变成字符保持原样将数据打印到目的地
out.close();
System.out.print("end");
打印流PrintWriter
/**
* PrintWriter:字符打印流。
* 构造函数参数:
* 1.字符串路径
* 2.File对象
* 3.字节输出流
* 4.字符输出流
*/
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(System.out);
PrintWriter out_file = new PrintWriter("print.txt");//PrintWriter out_file = new PrintWriter(new FileWriter("print.txt"));
String line = null;
while((line=bufr.readLine())!=null){
if("over".equals(line)){
break;
}
out_file.print(line.toUpperCase()+System.lineSeparator());
out_file.flush();
}
out.close();
bufr.close();
序列流SequenceInputStream
/**
*需求:将1.txt,2.txt,3.txt中的数据合并到一个文件中
*/
//两种方式
/*
Vector<FileInputStream> v = new Vector<FileInputStream>();
v.add(new FileInputStream("1.txt"));
v.add(new FileInputStream("2.txt"));
v.add(new FileInputStream("3.txt"));
Enumeration<FileInputStream> en = v.elements();
*/
/*
ArrayList<FileInputStream> al = new ArrayList<FileInputStream>();
for(int i=1;i<=3;i++){
al.add(new FileInputStream(i+".txt"));
}
final Iterator<FileInputStream> it = al.iterator();
Enumeration<FileInputStream> en = new Enumeration<FileInputStream>(){
public boolean hasMoreElements(){
return it.hasNext();
}
public FileInputStream nextElement(){
return it.next();}
};
*/
SequenceInputStream sis = new SequenceInputStream(en);
FileOutputStream fos = new FileOutputStream("4.txt");
byte[] buf = new byte[1024];
int len = 0;
while((len=sis.read(buf))!=-1){
fos.write(buf,0,len);
}
fos.close();
sis.close();