一、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("切割成功"); } }
相关推荐
Java的I/O(Input/Output)类库位于`java.io`包中,提供了超过60个不同的流类。这些类大致可以分为四大抽象类:`InputStream`、`OutputStream`、`Reader`和`Writer`。这些抽象类不能直接实例化,但它们的子类被广泛...
Go语言的I/O操作不仅限于简单的读写,还包括了一些高级特性,比如`io.Copy`可以用来复制数据,`io.MultiReader`和`io.MultiWriter`可以合并多个读写操作为一个,提供更加灵活的I/O操作方式。 Go语言标准库中的I/O...
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)); 这里面我们还要介绍一个经常会遇到的问题,就是怎么来冻结一个窗口。...
- **Java.io**:包中包含了用于处理输入输出流的各种类和接口。 - **输入输出流**:用于读写数据到文件或网络等外部资源。 #### 15. 二分查找的前提条件 - **题目解析**:题目考察二分查找的应用前提。 - **知识...
8. **输入/输出流**:Java的IO流库提供了处理文件读写、网络通信的能力。学习`InputStream`和`OutputStream`及其子类,以及`BufferedReader`、`PrintWriter`等,可以帮助实现数据的输入输出。 9. **反射API**:Java...
理解Java的基础语法、类、接口、异常处理、IO流、集合框架等是Java开发者的基础。 5. **资源文件管理**:"src/main/resources"通常存放非编译的静态资源,如配置文件、图片、音频等。这些文件会被自动包含到最终的...
- **Stream**: 流,Java中用于处理输入输出的数据流。 - **Exception**: 异常,程序执行过程中的非正常情况。 - **IO**: 输入输出,用于描述数据的传输过程。 - **Equal**: 等于,用于比较两个值是否相等。 - **...
JAR(Java Archive)文件是一种打包机制,它将相关的类文件、图像、音频和其他支持文件合并到一个单一的可执行文件中。这种格式不仅方便分发和管理,还支持压缩、身份验证和版本控制。 要从JAR文件中读取数据,首先...
进行高精度运算可以用java.math包中BigDecimal类中的方法。 自动类型提升又称作隐式类型转换。 强制类型转换:int ti; (byte) ti ; 强制转换,丢弃高位 宣告变量名称的同时,加上“final”关键词来限定,这个...