Java文件输入输出流
程序员文章站
2024-03-16 22:52:34
...
1.前言
学习Java也有一段时间了,在开发自己的安卓应用时总是觉得力不从心,主要是Java基础不好(自学的时候不够用心 ),所以还要回来补习Java。下面是我学习Java输入输出流的一些笔记,希望能帮到初学Java的朋友。
2.正文
- 确定使用输入流还是输出流。以程序为中心,往程序输入的就使用输入流,程序往外输出就使用输出流。
- 流分为字节流和字符流。字节流什么文件都可以处理,字符流主要处理纯文本文件。字节流的输入流抽象类是InputStream,实现类是FileInputStream;字节流的输出流抽象类是OutputStream,实现类是FileOutPutStream。字符流的输入流抽象类是Reader,实现类是FileReader;字节流的输出流抽象类是Writer,实现类是FileWriter。
- 使用流的一般过程。
1.与目标文件建立联系
2.选择对应的流
3.确定读取或者写入的块大小
4.读取或者写入
5.释放资源 - 下面是字节输入流读取文件的demo代码。
package demo03;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
/**
*读取文件Demo
*/
public class Demo01 {
public static void main(String[] args) {
//与目标文件建立联系
File file = new File("C:\\Users\\15321\\Desktop\\test.txt");
//选择流 InputStream是字节输入流的抽象类
InputStream is = null;
try {
//FileInputStream是字节输入流的实现类
is = new FileInputStream(file);
//确定读取块的大小 相当于缓冲
byte[] b = new byte[1024];
//实际读取的大小
int len;
//读取
while((len = is.read(b)) != -1) {
//输出 字节数组转成字符串
System.out.println(new String(b, 0, len));
}
} catch (IOException e) {
e.printStackTrace();
} finally {
//释放资源
if(is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
- 下面是字节输出流的demo代码。
package demo03;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
/**
1. 写入文件的demo
*/
public class Demo02 {
public static void main(String[] args) {
//与目标文件建立联系
File file = new File("C:\\Users\\15321\\Desktop\\test.txt");
//选择流
OutputStream os = null;
try {
String str = "woyebuzhidaoa";
//true表示追加文件 false表示覆盖文件
os = new FileOutputStream(file, true);
//写入的字节数据
byte[] data = str.getBytes();
//写入
os.write(data, 0, data.length);
//刷新
os.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
//释放资源
if(os != null) {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
- 字节流的读取、写入综合练习。demo代码如下。
package demo03;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**
* 读取和写入的综合练习demo 把test.txt的文件内容拷入test1.txt
*/
public class Demo03 {
public static void main(String[] args) {
File src = new File("C:\\Users\\15321\\Desktop\\test.txt");
File dst = new File("C:\\Users\\15321\\Desktop\\test1.txt");
InputStream is = null;
OutputStream os = null;
try {
is = new FileInputStream(src);
os = new FileOutputStream(dst);
byte[] b = new byte[1024];
int len = 0;
while((len = is.read(b)) != -1) {
os.write(b, 0, len);
}
os.flush();
} catch (FileNotFoundException e) {
System.out.println("文件不存在!");
} catch (IOException e) {
e.printStackTrace();
} finally {
//一般先打开的后关闭
if(os != null) {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
3.总结
- 如有错误恳请指正。
- 初学者一定要学好文件输入流和输出流,这样用起来才会轻松。
- 与君共勉。
上一篇: 五子棋AI算法简易实现(一)
下一篇: 十六进制和二进制相互转换(快速转换)
推荐阅读
-
Java文件输入输出流
-
Java 流输出文件中文乱码问题
-
java的输入输出部分,及文件操作
-
JAVA(文件)输入输出流
-
java中输入文件流和输出文件流的使用
-
java的输入输出流与文件操作(2.读入写出及关流)
-
Java文件流输入输出
-
图形界面指定地址统计文件个数 博客分类: JAVA 基础 JAVA.IO图形
-
java文件遍历 java.io
-
的含义
博客分类: JavaHibernate java字符串日期hibernatehbm2ddl ">
Java 字符串转换为日期,hibernate配置文件
的含义 博客分类: JavaHibernate java字符串日期hibernatehbm2ddl