Commons
commons 是 第三方开源 IO工具包
/*
* 获取扩展名
* static String getExtension(String filename)
* 获取文件名字
* static String getName(String filename)
* 判断是不是这个扩展名
* static boolean isExtension(String filename,String extension)
* 复制文件夹
* static void copyDirectoryToDirectory(File src,File desc)
* 复制文件
* static void copyFile(File src,File desc)
* 将字符串写入文件
* static void writeStringToFile(File src,String date)
* 按字符串读取文件
* static String readFileToString(File src)
* 写入文件 可以选取用什么字节流写入
* static void write(String data, OutputStream output)
* 读取文件以字符串形式到集合中
* static List<String> readLines(InputStream input)
*/
public class Demo02 {
public static void main(String[] args) throws IOException {
String extension = FilenameUtils.getExtension("/Users/lanou/Desktop/XTest/sx.txt");
System.out.println(extension);
String name = FilenameUtils.getName("/Users/lanou/Desktop/XTest/sx.txt");
System.out.println(name);
boolean extension2 = FilenameUtils.isExtension("/Users/lanou/Desktop/XTest/sx.txt", "jpg");
System.out.println(extension2);
FileUtils.copyDirectoryToDirectory(new File("/Users/lanou/Desktop/ZTest/a"), new File("/Users/lanou/Desktop/XTest"));
FileUtils.copyFile(new File("/Users/lanou/Desktop/XTest/sx.txt"), new File("/Users/lanou/Desktop/XTest/ss.txt"));
FileUtils.writeStringToFile(new File("/Users/lanou/Desktop/XTest/sx.txt"), "很霸道");
String readFileToString = FileUtils.readFileToString(new File("/Users/lanou/Desktop/XTest/sx.txt"));
System.out.println(readFileToString);
FileOutputStream fos = new FileOutputStream("/Users/lanou/Desktop/XTest/sm.txt");
IOUtils.write("尹贵水傻逼", fos);
FileInputStream fis = new FileInputStream("/Users/lanou/Desktop/Test/a.txt");
List<String> readLines = IOUtils.readLines(fis);
System.out.println(readLines);
}
}
功能流(合并流)
SequenceInputStream
具有合并功能
可以把多个流合并成一个流
SequenceInputStream(Enumeration<? extends InputStream> e)
构造方法:
参数 是Vector特有的迭代器
该Vector要保存的是 InputStream 的子类
SequenceInputStream(InputStream s1, InputStream s2)
参数: 传两个字节输入流
public class Demo {
public static void main(String[] args) throws IOException {
Vector<FileInputStream> vector = new vector<>();
vector.add(new FileInputStream("/Users/s/Desktop/ZTest/1.txt"));
vector.add(new FileInputStream("/Users/s/Desktop/ZTest/2.txt"));
vector.add(new FileInputStream("/Users/s/Desktop/ZTest/3.txt"));
Enumeration<FileInputStream> elements = vector.elements();
SequenceInputStream sis = new SequenceInputStream(elements);
FileoutputStream fos = new FileoutputStream("/Users/s/Desktop/ZTest/4.txt");
byte[] b = new byte[1024];
int len = 0;
while((len = sis.read(b)) != -1){
fos.write(b, 0, len);
}
fos.close();
sis.close();
}
}
练习
1.将图片切割成多个1M
2.然后将这些文件 合并成一个图片
public class Demo04 {
public static void main(String[] args) throws IOException {
Vector<FileInputStream> vector = new vector<>();
int num = 1;
for(i = 1; i < 8; i++){
File file = new File("/Users/lanou/Desktop/ZTest/dp" + i + ".png");
FileInputStream fis = new FileInputStream(file);
vector.add(fis);
}
Enumeration<FileInputStream> elements = vector.element;
SequenceInputStream sis = new SequenceInputStream(elements);
FileOutputStream fos = new FileoutputStream("/Users/s/Desktop/ZTest/dpNew")
byte[] b = new byte[1024 * 1024];
int len = 0;
while((len = sis.read(b)) != -1){
fos.write(b, 0, len);
}
sis.close();
fos.close();
}
public static void fun1() throws FileNotFoundException, IOException {
FileInputStream fis = new FileInputStream(new File("/Users/s/Desktop/ZTest/dp.png"));
int num = 1;
FileOutputStream fos = null;
byte[] b = new byte[1024 * 1024];
int len = 0;
while((len = fis.read(b)) != -1){
fos = new FileOutputStream("/Users/s/Desktop/ZTest/dp" + num++ + ".png");
fos.write(b, 0, len);
fos.close();
}
fis.close();
}
}
Day.28
http://blog.csdn.net/ssssssue