java输入输出流
发布日期:2021-10-03 01:51:58
浏览次数:13
分类:技术文章
本文共 2435 字,大约阅读时间需要 8 分钟。
package JavaAdvanced; //Java 流(Stream)、文件(File)和IO /* * Java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。 Java.io 包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。 一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。 Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。 * */ import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; public class Java_Stream_IO_File { public static void main(String[] args) throws IOException { //3.读写文件=========================================== //一个流被定义为一个数据序列。输入流用于从源读取数据,输出流用于向目标写数据。 //创建一个输入流对象有两种方式 /* * 1. InputStream is = new FileInputStream("javaTest.txt"); //2. File f=new File("f:/javaTest.txt"); InputStream is2= new FileInputStream(f); * */ //创建一个输出流对象有两种方式 /* * OutputStream f = new FileOutputStream("C:/java/hello") 也可以使用一个文件对象来创建一个输出流来写文件。我们首先得使用File()方法来创建一个文件对象: File f = new File("C:/java/hello"); OutputStream f = new FileOutputStream(f); * */ //写入流 try { int [] bwrite ={1,2,3,4,5}; /* * OutputStream os = new FileOutputStream("../MyJavaProject/src/JavaAdvanced/javaTest.txt"); for (int i = 0; i < bwrite.length; i++) { os.write(bwrite[i]); } os.close();//关闭输出流 会乱码 * */ FileOutputStream os = new FileOutputStream("../MyJavaProject/src/JavaAdvanced/javaTest.txt"); // 构建FileOutputStream对象,文件不存在会自动新建 OutputStreamWriter writer = new OutputStreamWriter(os, "UTF-8"); // 构建OutputStreamWriter对象,参数可以指定编码,默认为操作系统默认编码,windows上是gbk for (int i = 0; i < bwrite.length; i++) { writer.append(bwrite[i]+""); } writer.append("中文输入"); // 写入到缓冲区 writer.append("\r\n"); //换行 writer.append("English"); // 刷新缓存冲,写入到文件,如果下面已经没有写入的内容了,直接close也会写入 writer.close(); //关闭写入流,同时会把缓冲区内容写入文件,所以上面的注释掉 os.close(); // 关闭输出流,释放系统资源 } catch (Exception e) { // TODO: handle exception System.err.println("写入失败"); } //写出流 try { // 构建FileInputStream对象 FileInputStream is = new FileInputStream("../MyJavaProject/src/JavaAdvanced/javaTest.txt"); //构建InputStreamReader对象,编码与写入相同 InputStreamReader isRead = new InputStreamReader(is, "UTF-8"); // StringBuffer sb = new StringBuffer(); //数据从网络缓冲到本地isRead.ready() 才能读取 while(isRead.ready()){ sb.append((char)isRead.read()); // 转成char加到StringBuffer对象中 } System.out.println(sb.toString()); isRead.close(); // 关闭读取流 is.close(); // 关闭输入流,释放系统资源 } catch (Exception e) { // TODO: handle exception } } }转载地址:https://blog.csdn.net/kai402458953/article/details/88340419 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年03月30日 06时08分42秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
LeetCode 332. 重新安排行程(欧拉路径)
2019-04-28
LeetCode 1452. 收藏清单(std::includes判断子集)
2019-04-28
LeetCode 1453. 圆形靶内的最大飞镖数量(几何题)
2019-04-28
LeetCode 372. 超级次方(快速幂)
2019-04-28
LeetCode 393. UTF-8 编码验证(位运算)
2019-04-28
LeetCode 373. 查找和最小的K对数字(自定义优先队列BFS)
2019-04-28
Feature Engineering 特征工程 1. Baseline Model
2019-04-28
LeetCode 417. 太平洋大西洋水流问题(BFS/DFS)
2019-04-28
LeetCode 388. 文件的最长绝对路径(不用栈,前缀和)
2019-04-28
LeetCode 424. 替换后的最长重复字符(滑动窗口)
2019-04-28
LeetCode 416. 分割等和子集(动态规划)
2019-04-28
LeetCode 662. 二叉树最大宽度(递归)
2019-04-28
LeetCode 474. 一和零(01背包动态规划)
2019-04-28
LeetCode 452. 用最少数量的箭打破气球(贪心)
2019-04-28
LeetCode 670. 最大交换
2019-04-28