首页 / JAVA / Java基础 -- IO流
Java基础 -- IO流
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java基础 -- IO流,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3414字,纯文字阅读大概需要5分钟。
内容图文
![Java基础 -- IO流](/upload/InfoBanner/zyjiaocheng/603/d864931a270d40d0863de2215c62fff2.jpg)
Java基础 -- IO流
Java
中流可以理解为数据的序列:输入流用于从origin
侧读取数据;输出流用于向destination
侧写入数据。
JDK5之前控制台输入
多字符读取
JDK5之前程序获取console
端数据输入,通过BufferedReader
类实现,通过循环实现多次调用单个字符读写方法bufferedReader.reader()
实现程序对于console
端多字符的获取。
private static void consoleReadCharacters() throws IOException {
final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("输入字符,按下'q'键退出");
char c;
do {
// read()用于读取单个字符输入
c = (char) br.read();
System.out.println(c);
} while (c != 'q');
}
字符串读取
JDK5之前程序获取console
端数据输入,通过BufferedReader
类实现
private static void consoleReadString() throws IOException {
final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter lines of text");
System.out.println("Enter 'end' to quit");
String input;
do {
input = br.readLine();
System.out.println(input);
} while (!input.equals("end"));
}
IO流
对于IO流所涵盖的内容,此处借用菜鸟教程中的图片:
本文分别采用字节流和字符流实现对文件的写入和读取操作。值得一提的是:文件输入流是针对当前程序而言的,用于从文件读取数据;同理,文件输出流用于向文件写入数据。
字节流
文件输出字节流
当前程序通过文件输出字节流,向文件写入字节
/**
* 向文件写入数据:输出数据到文件,文件是输出方
* 文件输出字节流
*/
private static void writeStreamToFile() throws IOException {
final FileOutputStream outputStream = new FileOutputStream(file);
byte[] bytes = {12, 23, 34, 56};
for (int i=0; i<bytes.length; i++) {
outputStream.write(bytes[i]);
}
outputStream.close();
}
文件输入字节流
当前程序通过文件输出字节流,从文件中读取字节
/**
* 从文件读取数据:从文件读取数据,文件是输入方
* 输入字节流
*/
private static void readStreamFromFile() throws IOException {
final FileInputStream inputStream = new FileInputStream(file);
final int size = inputStream.available();
for (int i=0; i<size; i++) {
System.out.println(inputStream.read());
}
inputStream.close();
}
字符流
通过实践可以发现,字节流在写入读取过程中操作的单元都是字节,对于中文、英文字符的操作显得没那么便利,此时就可以考虑使用字符流操作,而字符流是对上述字节流的包裹,方便对中、英文字符的操作。
文件输出字符流
/**
* 使用OutputStreamWriter向文件写入,解决保存字节时存在的显示乱码
* 输出字符流
*/
private static void writeToFile() throws IOException {
// 构建FileOutputStream对象,文件不存在会自动创建
final FileOutputStream outputStream = new FileOutputStream(file);
final OutputStreamWriter writer = new OutputStreamWriter(outputStream, "UTF-8");
// 写入到缓存区
writer.append("中文输入");
writer.append("\r\n");
writer.append("English");
// 刷新缓存区
writer.flush();
// 关闭输出流,同时会将缓存区中的数据写入文件
writer.close();
outputStream.close();
}
文件输出字符流是对文件输出字节流的包裹,同时指定文件输出字符流采用的编码格式:UTF-8
文件输入字符流
/**
* 使用InputStreamReader从文件读取,解决乱码
* 输入字符流
*/
private static void readFromFile() throws IOException {
// 构建FileInputStream对象
final FileInputStream inputStream = new FileInputStream(file);
final InputStreamReader reader = new InputStreamReader(inputStream, "UTF-8");
// 读取文件内容
final StringBuilder builder = new StringBuilder();
while(reader.ready()) {
// 将char追加到StringBuilder对象中
builder.append((char) reader.read());
}
// 输出内容
System.out.println(builder.toString());
// 关闭流
reader.close();
inputStream.close();
}
文件输入字符流是对文件输入字节流的包裹,同时指定与上述文件输出字符流一致的编码格式:UTF-8
内容总结
以上是互联网集市为您收集整理的Java基础 -- IO流全部内容,希望文章能够帮你解决Java基础 -- IO流所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。