java输入输出流-----文件操作
程序员文章站
2022-03-13 15:47:00
...
java中的输入输出是一种必不可少的操作,那么输入输出是什么意思呢。
输入与输出操作的对象都是内存,也就是说输入和输出两个操作是相对于计算机内存来说的
输入:程序将磁盘中的数据(也可能来源于键盘输入、网络爬取)拿出来放到内存当中的过程叫做输入。
输出:程序将内存中的数据持久化地保存在磁盘中(也可能将数据展示在屏幕上、提交到网络上)的过程叫做输出。
知道什么是输入输出了以后,我们就要知道输入输出的方式都有哪些:
输入输出共有三种方式:
- 按字节输入输出
- 按字符输入输出
- 使用缓冲进行输入输出
这里主要讲述如何从文件中读取数据和向文件中输出数据
那么分别来看看这几种方式都是怎么来操作的
按字节输入输出:(FileInputStream 、FileOutputStream)
代码示例:
package ziJie;
import java.io.*;
public class testZiJie {
public static void main(String[] args){
try {
chageImg("D:\\demo\\javaBase\\src\\ziJie\\鬼刀.jpg","D:\\demo\\javaBase\\src\\ziJie\\鬼刀2.jpg");
} catch (IOException e) {
e.printStackTrace();
}
}
public static void chageImg(String path1,String path2) throws IOException {
FileInputStream in = new FileInputStream(path1);
FileOutputStream out = new FileOutputStream(path2);
// 定义一个变量来记录从输入流获得到的字节
int temp;
while ((temp = in.read()) != -1){
out.write(temp);
}
System.out.println("over");
}
}
按字符输入输出(InputStreamReader、OutputStreamWriter)
使用字符进行输入输出一般是对文本文件进行的操作,因为文本文件中的数据一般都是使用字符来存储的。按字符输入输出比较方便。
示例代码:
package objectTest;
import java.io.*;
public class test {
public static void main(String[] args) throws IOException {
InputStreamReader in = new InputStreamReader(new FileInputStream("D:\\demo\\javaBase\\src\\objectTest\\test1.txt"));
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream("D:\\demo\\javaBase\\src\\objectTest\\test2.txt"));
int temp ;
while ((temp = in.read()) != -1){
out.write(temp);
System.out.println((char)temp);
}
out.flush(); // 一定要清空输出流中的缓存,不然会导致字符流没有输出到对应文件中
in.close();
out.close();
System.out.println("over");
}
}
在最后一定要将流中的数据刷新到文件中,不然流中的数据不能输出到文件中,最后还要将输入输出流关闭
下一篇: java二进制和十六进制的相互转换