版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40301026/article/details/87869205
IO流的所谓输入输出是站在程序的角度去看。文件数据到程序就是输入,反之就是输出。
最基本(基础)的写法套路:
1.创建源(源文件)
2.选择流(FileInputStream、FileOutputStream)
3.操作(选择输入或是输出)
4.释放。( void close(); 关闭该流并释放与之相关的所有资源)
下面来两个示例:
一个一个字节或字符的去读取或输入。
1.输入流
(1)写入了文件地址创建源src, (2)is = new FileInputStream(src);传入源src构建输入流is; (3) is.read();是从输入流中去读一个数据字节,比如'h'就是104(GBK字符集中),通过一个while()循环,将输入流中的数据输出(为了验证我们操作成功)。(4) is.close(); 关闭该流并释放与之相关的所有资源.注意不是此代码直接关闭的,而是其通知操作系统,然后操作系统去释放相关资源的。
哪里不懂,勤于查看API。
package cn.liu.io2;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
public class IOTset02 {
public static void main(String[] args) {
//1、创建源
File src = new File("nnn.txt");
//2、选择流
InputStream is =null;
try
{
is = new FileInputStream(src);
//3、操作(读取)
int temp = -1;
while((temp = is.read())!=-1) {
System.out.println((char)temp);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
//4、释放资源
try {
if(is!=null) {
is.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
2.输出流:
package cn.liu.io2;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class IOTest04 {
public static void main(String[] args) {
//1.创建源
File src = new File("dest.txt");
OutputStream os = null;
try {
//2.选择流
os = new FileOutputStream(src);
//os = new FileOutputStream(src,true);//true就是追加内容,flase就是从头写
//3.操作(输出,写出)
String msg = "sdjdccw"; //要输出的内容(实验验证)
byte[] datas = msg.getBytes();//字节->字符串
os.write(datas,0,datas.length);
os.flush();//刷新
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
//4.释放资源
if(os!=null) {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}