一、PrintWriter字符打印流
与PrintStream非常类似
package day13; import java.io.*; public class PrintWriterDemo { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); PrintWriter pw = new PrintWriter(new FileWriter("E:/in.txt")); String line = null; while((line=br.readLine())!=null) { if(line.equals("over")) break; pw.println(line.toUpperCase()); } pw.close(); br.close(); } }
二、SequenceInputStream合并流
- SequenceInputStream 表示其他输入流的逻辑串联。
- 它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,
- 接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文件末尾为止。
public class SequenceInputStream extends InputStream { //通过记住这两个参数来初始化新创建的 SequenceInputStream(将按顺序读取这两个参数,先读取 s1,然后读取 s2), //以提供从此 SequenceInputStream 读取的字节 public SequenceInputStream(InputStream s1, InputStream s2){} //通过记住参数来初始化新创建的 SequenceInputStream,该参数必须是生成运行时类型为 InputStream 对象的 Enumeration 型参数。 //将按顺序读取由该枚举生成的输入流,以提供从此 SequenceInputStream 读取的字节。 //在用尽枚举中的每个输入流之后,将通过调用该流的 close 方法将其关闭。 public SequenceInputStream(Enumeration<? extends InputStream> e){} }
三、示例
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.SequenceInputStream; import java.util.Enumeration; import java.util.Vector; /** * 需求:合并多个文件为一个文件 */ public class SequnceInputStreamDemo { public static void main(String[] args) throws IOException { //用Vector存储多个InputStream对象 Vector<FileInputStream> v = new Vector<FileInputStream>(); v.add(new FileInputStream("e:/1.mp3")); v.add(new FileInputStream("e:/2.mp3")); v.add(new FileInputStream("e:/3.mp3")); //得到Enumeration Enumeration<FileInputStream> e = v.elements(); SequenceInputStream sis = new SequenceInputStream(e); FileOutputStream fos = new FileOutputStream("e:/4.mp3"); byte[] buf = new byte[1024]; int num = 0; while((num=sis.read(buf))!=-1) { fos.write(buf,0,num); } fos.close(); sis.close(); System.out.println("合并成功"); } }
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.SequenceInputStream; import java.util.ArrayList; import java.util.Enumeration; import java.util.Iterator; /** * 需求:合并多个文件为一个文件 * * 分析:用ArrayList代替Vector更高效,但是要得到Enumeration就必须转换 */ public class SequnceInputStreamDemo { public static void main(String[] args) throws IOException { //用Vector存储多个InputStream对象 ArrayList<FileInputStream> al = new ArrayList<FileInputStream>(); al.add(new FileInputStream("e:/1.mp3")); al.add(new FileInputStream("e:/2.mp3")); al.add(new FileInputStream("e:/3.mp3")); //得到Enumeration final Iterator<FileInputStream> it = al.iterator(); Enumeration<FileInputStream> e = new Enumeration<FileInputStream>(){ public boolean hasMoreElements() { return it.hasNext(); } public FileInputStream nextElement() { return it.next(); } }; SequenceInputStream sis = new SequenceInputStream(e); FileOutputStream fos = new FileOutputStream("e:/4.mp3"); byte[] buf = new byte[1024]; int num = 0; while((num=sis.read(buf))!=-1) { fos.write(buf,0,num); } fos.close(); sis.close(); System.out.println("合并成功"); } }
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; /** * 需求:切割文件 */ public class SequnceInputStreamDemo { public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStream("e:/4.mp3"); FileOutputStream fos; byte[] buf = new byte[1024*1024*5]; int num = 0; int x = 5; while((num=fis.read(buf))!=-1) { fos = new FileOutputStream("e:/"+(x++)+".mp3"); fos.write(buf,0,num); fos.close(); } fis.close(); System.out.println("切割成功"); } }
相关推荐
NULL 博文链接:https://mrpengpengda.iteye.com/blog/1536292
Java.io 包中的 File 类 Java.io 包中的 File 类是 Java 语言中代表磁盘文件本身的对象,定义了一些与平台无关的方法来操纵文件。通过调用 File 类提供的各种方法,能够完成创建、删除文件,重命名文件,判断文件的...
io包中常用类的作用、重要方法及类之间的继承关系。
DateFormat,Calendar、文件与流、Java变量类型间的相互转换、Java与Web、用连接池提高Servlet访问数据库的效率、Java扩展、应用服务器的集群策略及Java EE 5.0、Java IO 包中的Decorator模式等。
java IO 类层次图,以清晰明了的形式标明了java io中各种类的关系
IO流 javaio java 流
JAVAIO流总结宝典,分享给大家,总结较为全面
2、常用21个IO流:FileWriter、FileReader、CharArrayReader、CharArrayWriter、CharSequence、OutputStreamWriter、FileOutputStream、InputStreamReader、PrintWriter、BufferedReader、InputStream、...
思维导图io流思维导图io流思维导图io流思维导图io流思维导图io流思维导图io流
IO流的主要流
map集合的特性和它的遍历方式 还有一个根据Set特性的一个排序 以及IO流 字节流和字符流实现代码
java-android面试题
本人是初学者,在老师的指导下,将自身对Java中IO流的理解做成以下思维导图
IO流文件的复制
【公益知识库zscc.club】52-IO流(合并流).avi
javaIO流javaIO流
JAVA IO 输入输出流JAVA IO 输入输出流JAVA IO 输入输出流JAVA IO 输入输出流JAVA IO 输入输出流JAVA IO 输入输出流JAVA IO 输入输出流
想了解IO输入输出流的学者可以看看,里面有详细的讲解及源代码。
java基础之IO流,基础简介知识,帮助你了解java的io技术
4. Java中流的概念细分 流的方向: 输入流:数据源到程序(InputStream、Reader读进来) ...节点流处于io操作的第一线,所有操作必须通过他们进行;处理流可以对节点流 进行包装,提高性能或提高程序的灵活性。