一、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("切割成功"); } }
相关推荐
18. Java的IO流按传输数据的不同分为字节流和字符流,分别处理字节和字符序列。 19. Excel的工资表整理和分析涉及到单元格合并、数据格式设置、数字格式化以及会计专用格式的应用,这些操作都是在Excel中进行数据...
此外,POI还提供了处理字体(`HSSFFont`)、日期格式(`HSSFDataFormat`)和样式(`HSSFCellStyle`)的对象,以及辅助操作如日期转换(`HSSFDateUtil`)和打印设置(`HSSFPrintSetup`)。 创建一个基本的Excel文件...
在Java中,路径处理主要由java.io和java.nio.file包中的类来支持。本篇文章将详细探讨Java中如何获取和操作路径。 首先,我们来看`IPrinter.java`可能是一个接口,用于定义打印路径的方法,例如: ```java public ...
这些操作是通过Java的I/O(Input/Output)包实现的,包括`java.io`和`java.nio`包中的类和接口。在给定的压缩包中,包含的jar包很可能是用于帮助开发者处理PDF文档的后台操作,例如解析PDF内容、合并PDF文件、提取...
还有我们我们经常会用到的合并单元格,在这里我们也有这样的操作,代码如下: sheet.addMergedRegion(new Region(1,(short)1,2,(short)4)); 这里面我们还要介绍一个经常会遇到的问题,就是怎么来冻结一个窗口。...
10.8 读取位于包中的数据文件 10.9 将文件夹加入到sys.path 10.10 通过字符串名导入模块 10.11 通过导入钩子远程加载模块 10.12 导入模块的同时修改模块 10.13 安装私有的包 10.14 创建新的Python环境 10.15...
8. **输入/输出流**:Java的IO流库提供了处理文件读写、网络通信的能力。学习`InputStream`和`OutputStream`及其子类,以及`BufferedReader`、`PrintWriter`等,可以帮助实现数据的输入输出。 9. **反射API**:Java...
理解Java的基础语法、类、接口、异常处理、IO流、集合框架等是Java开发者的基础。 5. **资源文件管理**:"src/main/resources"通常存放非编译的静态资源,如配置文件、图片、音频等。这些文件会被自动包含到最终的...
JAR(Java Archive)文件是一种打包机制,它将相关的类文件、图像、音频和其他支持文件合并到一个单一的可执行文件中。这种格式不仅方便分发和管理,还支持压缩、身份验证和版本控制。 要从JAR文件中读取数据,首先...
进行高精度运算可以用java.math包中BigDecimal类中的方法。 自动类型提升又称作隐式类型转换。 强制类型转换:int ti; (byte) ti ; 强制转换,丢弃高位 宣告变量名称的同时,加上“final”关键词来限定,这个...