![82517e3281a6035434495fac387d5482.png](https://i-blog.csdnimg.cn/blog_migrate/188af0ca24b1bcb9f8d66837a1b986cb.png)
emmm 刚写好没保存就不小心F5了 重新码 苦兮兮...
遇到很多对Excel进行读写的问题,之前因为赶任务进度,所以也没有空闲来去关注这一块儿,今天来做一下整理。
Java的流使用来进行数据、文件的读写的。按照数据类型,分为字节流和字符流;按照数据流向,由设备流向程序称为输入流,反之称为输出流;按照功能又分为节点流和处理流。输入输出流大家很好理解,节点流和处理流在这里做简单介绍:1.节点流,程序用于直接操作目标设备所对应的类叫节点流,可以理解为直接对文件进行读写;2.处理流,举个例子:正常情况下System.out.println();所输出的内容会输入在控制台上面,但是在加一层处理流之后(暂不考虑代码严谨性):
PrintStream ps = null;
FileOutputStream f=new FileOutputStream(FilePath,true);//第二个参数为
true时,会在文件末尾追加,不写默认为false,会覆盖内容
ps=new PrintStream(f);//加一层处理流
System.setOut(ps);
此时,System.out.println();所输出的内容会追加在指定文件内。这个就可以很方便的进行日志的跟踪记录了。
下面通过一个简单的复制Excel来理解一下流:
原文件:
![ed2490c9d544e3cbfd63ed2f036a0281.png](https://i-blog.csdnimg.cn/blog_migrate/51bd560cbebdf58da6786b442c60e53e.png)
![be74a68b71221bf3de49887abbef7bec.png](https://i-blog.csdnimg.cn/blog_migrate/c3136503153a8c2652a4a7866462a76e.jpeg)
代码:
public class Test1 {
private static String path = "C://Users//Administrator//Desktop//test_new.xlsx";// 生成文件路径
public static void main(String[] args) throws Exception {
String fileCopy="C://Users//Administrator//Desktop//test.xlsx";//源文件路径
File copyFile=new File(fileCopy);
File newFile=new File(path);
FileInputStream ins = new FileInputStream(copyFile);
FileOutputStream out = new FileOutputStream(newFile);
byte[] b = new byte[1024];
int n = 0;
while ((n = ins.read(b)) != -1) {//确定文件不为空
out.write(b, 0, n);
}
ins.close();
out.close();
}
}
复制后的文件:
![73a9ba2e107c13431dc7f6c52fb56d9a.png](https://i-blog.csdnimg.cn/blog_migrate/2424fafc98de3670617f335c7aef7e52.png)
用完后,要记得关闭流,遵循先开后关,后开先关的原则。
(PS:感觉有点儿不厚道,本来是整理了好多Excel操作的,但是因为jdk出问题了一直没调好,不能编译所以就临时写了个简单的/手动笑哭,以后补上)
联系我:
![d63c4835d0348846d65cf4979de89531.png](https://i-blog.csdnimg.cn/blog_migrate/cd0b00adfc8a07a65e99852d84cb7cac.jpeg)