缓冲流

BufferedOutputStream ————字节缓冲输出流
继承自父类的共性方法

public void close()——关闭此输出流并释放与此流相关联的任何系统资源。
public void flush()——刷新此输出流并强制任何缓冲的输出字节被写出。
public void write(byte[ ] b)——将b.length字节从指定的字节数组写入到此输出流。
public void write(byte[ ] b,int off,int len)——从指定的字节数组写入len字节,从偏移量off开始输出到此输出流。
public abstract void write(int b)——将指定的字节输出流。
构造方法
BufferedOutputStream (OutputStream out)——创建一个新的缓冲输出流,以将数据写入指定的底层输出流。
BufferedOutputStream (OutputStream out,int
size)——创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入指定的底层输出流。
参数
OutputStream out————字节输出流
我们可以传递FileOutPutStream,缓冲流会给FileOutPutStream增加一个缓冲区,提高FileOutPutStream的写入效率。
int size—————————指定缓冲流内部缓冲区的大小,不指定默认。
使用步骤(重点)
1.创建FileOutPutStream对象,构造方法中绑定要输出的目的地。
2.创建BufferedOutputStream对象,构造方法中传递FileOutPutStream对象,提高FileOutPutStream对象效率。
3.使用BufferedOutputStream对象中的方法write,把数
据写入到内部缓冲区中。
4.使用BufferedOutputStream对象中的方法flush,把内部缓冲区中的数据,刷新到文件中。
5.释放资源(会先调用flush方法刷新数据,第四步可以省略)。
java.io.BufferedIutputStream extends IutputStream

BufferedIntputStream ————字节缓冲输入流
继承自父类的共性方法

int read()——从输入流中读取数据的下一个字节。
int read(char[ ] cbuf)——从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中。
void close()——关闭此输入流并释放与此流相关联的任何系统资源。
构造方法
BufferedIntputStream (IutputStream in)——创建一个BufferedIntputStream 并保存其参数,即输入流in,以便将来使用。
BufferedIntputStream (IntputStream in,int
size)——创建具有指定缓冲区大小的BufferedIntputStream 保存其参数,即输入流in。
参数
IntputStream in————字节输入流
我们可以传递FileIntPutStream,缓冲流会给FileIntPutStream增加一个缓冲区,提高FileIntPutStream的读取效率。
int size—————————指定缓冲流内部缓冲区的大小,不指定默认。
使用步骤(重点)
1.创建FileIntPutStream对象,构造方法中绑定要读取的数据。
2.创建BufferedIntputStream 对象,构造方法中传递FileIntPutStream对象,提高FileIntPutStream对象读取效率。
3.使用BufferedIntputStream 对象中的方法read,读取文件
4.释放资源。
java.io.BufferedWriter extends Writer

字符缓冲输出流——BufferedWriter类
继承自父类的共性成员方法
public void write(int c)—————写入单个字符。

public void write(char[ ] cbuf)——写入字符数组。

abstract void write(char[ ] cbuf,int off,int len)——写入字符数组的某一部分,off数组的开始索引,len写的字符个数。

void write(String str)——写入字符串。

void write(char[ ] cbuf,int off,int len)——写入字符数组的某一部分,off字符串的开始索引,len写的字符个数。

void flush()——刷新该流的缓冲。

public void close()————————关闭此流,但要先刷新它。
构造方法

BufferedWriter (Writer out)————创建一个使用默认大小输出缓冲区的缓冲字符输出流。

BufferedWriter (Writer out,int sz)——创建一个使用给定大小输出缓冲区的缓冲字符输出流。
参数
Writer out————字符输出流
我们可以传递FileWtite,缓冲流会给FileWtite增加一个缓冲区,提高FileWtite的写入效率。
int sz—————指定缓冲区的大小,不写默认大小。
特有的成员方法

void newLine()————写入一个行分隔符。会根据不同的操作系统,获取不同的行分隔符。

使用步骤
1.创建字符缓冲输出流对象,构造方法中传递字符输出流。
2.调用字符缓冲输出流对象的方法write,把数据写入到缓冲区中。
3.调用字符缓冲输出流对象的方法flush,把内存缓冲区中的数据,刷新到文件中。
4.释放资源。
java.io.BufferedReader extends Reader

字符输入流——BufferedReader 类
继承自父类的共性成员方法

int read()——读取单个字符并返回。
int read(char[ ] cbuf)——一次读取多个字符,将字符读入数组。
void close()——关闭该流并释放与之关联的所有资源。
构造方法
BufferedReader (Reader in)————创建一个使用默认大小的输入缓冲区的缓冲字符输入流。
BufferedReader (Reader in)————创建一个使用是定大小输入缓冲区的缓冲字符输入流。
参数——————读取文件的数据源
Reader in——字符输入流
我们可以传递FileReader,缓冲流会给FileReader增加一个缓冲区,提高FileReader的读取效率。
特有的成员方法
String readLine( )——————读取一个文本行。读取一行数据。
行的终止符号—————————通过下列字符即可认为某行已终止————换行(‘\n’)、回车(‘\r’)或者回车后直接跟着换行(\n\r)。
返回值
包含改行内容的字符串,不包含任何终止符,如果已达流末尾,则放回null。
使用步骤
1.创建一个字符缓冲输入流对象,构造方法中传递符缓冲输入流。
2.使用符缓冲输入流对象中的方法read/readLine读取文本。
3.释放资源。
练习——对文本的内容进行排序
package cn.lrf.IODemo;

import java.io.*;
import java.util.HashMap;

/*练习
 * 对文本的内容进行排序
 * 按照(1,2,3...顺序进行排序)
 * 分析
 * 1.创建一个HashMap集合对象,可以存储每行文本的序号1,2,3...);value:存储每行的文本
 * 2.创建字符缓冲输入流对象,构造方法中绑定字符输入流。
 * 3.创建字符缓冲输出流对象,构造方法中绑定字符输入流。
 * 4.使用字符缓冲输入流中的方法readLine,逐行读取文本。
 * 5.对读取到的文本进行切割,获取行中的序号和文本内容。
 * 6.把切割好的序号和文本的内容存储到HashMap集合中(key序号是有序的,会自动排序1,2,3,4...)
 * 7.遍历HashMap集合,获取每一个键值对。
 * 8.把每一个键值对,拼接为一个文本行
 * 9.把拼接好的文本,使用字符缓冲输出流的方法write,写入到文件中。
 * 10.释放资源。
 * */
public class Demo05Test {
    public static void main(String[] args) throws IOException {
        // 1.创建一个HashMap集合对象,可以存储每行文本的序号1,2,3...);value:存储每行的文本
        HashMap<String, String> map = new HashMap<>();
        // 2.创建字符缓冲输入流对象,构造方法中绑定字符输入流。
        BufferedReader br = new BufferedReader(new FileReader("day08-code\\src\\cn\\lrf\\IODemo\\c.txt"));
        //3.创建字符缓冲输出流对象,构造方法中绑定字符输入流。
        BufferedWriter bw = new BufferedWriter(new FileWriter("day08-code\\src\\cn\\lrf\\IODemo\\d.txt"));
        // 4.使用字符缓冲输入流中的方法readLine,逐行读取文本。
        String line;
        while ((line = br.readLine()) != null) {
            // 5.对读取到的文本进行切割,获取行中的序号和文本内容。
            String[] arr = line.split("\\.");
            //6.把切割好的序号和文本的内容存储到HashMap集合中(key序号是有序的,会自动排序1,2,3,4...)
            map.put(arr[0], arr[1]);
        }
        // 7.遍历HashMap集合,获取每一个键值对。
        for (String key : map.keySet()) {
            String value = map.get(key);
            // 8.把每一个键值对,拼接为一个文本行
            line = key + "." + value;
            // 9.把拼接好的文本,使用字符缓冲输出流的方法write,写入到文件中。
            bw.write(line);
            bw.newLine();//写换行
        }
        // 10.释放资源。

        bw.close();

        br.close();
    }
}

转载于:https://www.cnblogs.com/sy130908/p/11497059.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/247001.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高斯模糊的算法(高斯权重)

本文转自&#xff1a;http://www.ruanyifeng.com/blog/2012/11/gaussian_blur.html 通常&#xff0c;图像处理软件会提供”模糊”&#xff08;blur&#xff09;滤镜&#xff0c;使图片产生模糊的效果。 “模糊”的算法有很多种&#xff0c;其中有一种叫做”高斯模糊“&…

序列化流与反序列化流

序列化流与反序列化流 用于从流中读取对象的 操作流 ObjectInputStream 称为 反序列化流 用于向流中写入对象的操作流 ObjectOutputStream 称为 序列化流 特点&#xff1a;用于操作对象。可以将对象写入到文件中&#xff0c;也可以从文件中读取对象。 1 对象序列化流Objec…

图像相似性搜索的原理

本文转自&#xff1a; 相似图片搜索的原理 相似图片搜索的原理&#xff08;二&#xff09; http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html http://www.ruanyifeng.com/blog/2011/07/principle_of_similar_image_search.html http://blog.s…

关于无效份额 和 拒绝份额

找到一个份额&#xff1a; 显卡每计算出满足要求的一个结果时是一个FOUND SHARE&#xff08;找到一个份额&#xff09;&#xff1b; 无效份额&#xff1a; 每找到一个份额时内核会将计算结果发给矿池&#xff0c;有些内核会在将结果发给矿池时&#xff08;之前、之后或同时&…

灰度共生矩阵(GLCM)并计算能量、熵、惯性矩、相关性(matlab)(待总结)

关于灰度共生矩阵的介绍可参考 http://blog.csdn.net/chuminnan2010/article/details/22035751 http://blog.csdn.net/xuezhisd/article/details/8908824 http://blog.csdn.net/xuexiang0704/article/details/8713204 http://cn.mathworks.com/help/images/ref/imlincomb.h…

你多久更新一次简历,决定了你的收入多久能提升

提到更新简历&#xff0c;或许大家第一时间就想到换工作&#xff0c;因为只有在换工作时才会更新。一般程序员大概1年半到2年跳槽一次&#xff0c;也就是说最多2年会更新一次。 更新简历是在其中更新自己的技术和各种能拿得出手的亮点&#xff0c;所以从这意义上来讲…

文件重命名批量处理(Matlab)

第一种方法&#xff1a;eval 方法 该方法未对文件进行任何处理&#xff0c;直接重命名。文件不损失任何信息。 tic clear; close all; % edited by cmwang,if any problem,please reference the website %http://blog.csdn.net/jiandanjinxin/article/details/51513598%------…

React-router总结

版本 v3和v4有一些差距&#xff1a; https://blog.csdn.net/qq_35484341/article/details/80500237 以下的总结&#xff0c;都是基于V4的 官方文档&#xff1a;https://reacttraining.com/react-router/web/guides/quick-start 核心组件和用法 <BrowserRouter/> <H…

机器学习之 weka学习(一)weka介绍,安装和配置环境变量

本部分详情可查看博客http://blog.csdn.net/u011067360/article/details/20844443 数据挖掘开源软件&#xff1a;WEKA基础教程 Weka简介&#xff1a; Weka是由新西兰怀卡托大学开发的智能分析系统&#xff08;Waikato Environment for Knowledge Analysis&#xff09; 。在怀…

第一章:线性空间和线性变换

转载于:https://www.cnblogs.com/invisible2/p/11514817.html

机器学习之 weka学习(二)算法说明

本文转自&#xff1a;http://blog.csdn.net/mm_bit/article/details/47405433 weka中的各算法说明 1) 数据输入和输出 WOW()&#xff1a;查看Weka函数的参数。 Weka_control()&#xff1a;设置Weka函数的参数。 read.arff()&#xff1a;读Weka Attribute-Relation File Forma…

TypeScript泛型

泛型的概念 指不预先确定的数据类型&#xff0c;具体的类型要在使用的时候才能确定。咋一听&#xff0c;是不是觉得JavaScript本身就是这样&#xff1f;这是由于理解有误。前面说“在使用的时候确定”&#xff0c;而非在程序执行的时候确定。 泛型函数 现在有个需求&#xff1a…

TypeScript类型检查机制

类型推断 指不需要指定变量的类型&#xff0c;TS编译器可以根据某些规则自动推断出类型。 什么时候会有类型推断&#xff1f; 声明变量时没有指定类型函数默认参数函数返回值......let a; // 这时自动推断为any类型 let b 1; // 推断为number类型 let c []; // 推断为由any类…

机器学习之 weka学习(三)

本文转自&#xff1a;http://blog.csdn.net/qiao1245/article/category/6115745 Weka教程笔记 http://blog.csdn.net/qiao1245/article/category/6115745 使用Weka进行数据挖掘&#xff08;Weka教程二&#xff09;Weka数据之ARFF与多文件格式转换 http://blog.csdn.net/qiao…

机器学习之 weka学习(四)

本文转自&#xff1a; http://blog.csdn.net/lantian0802/article/details/8875874 http://blog.csdn.net/lkj345/article/details/50152055 点击最上方的Classify按钮&#xff0c;选择Logistic&#xff08;逻辑回归&#xff09;分类方法&#xff0c;在Test options中选择…

TypeScript模块系统、命名空间、声明合并

命名空间 命名空间能有效避免全局污染。在ES6引入模块之后&#xff0c;命名空间就较少被提及了。如果使用了全局的类库&#xff0c;命名空间仍是一个好的解决方案。 namespace Shape{const pi Math.PI;// 使用export关键字导出&#xff0c;可以在全局空间内可见export functio…

机器学习之 weka学习(五)示例用法

WEKA 开发学习 &#xff1a;源码法分析 http://www.360doc.com/userhome.aspx?userid13256259&cid11# 用 WEKA 进行数据挖掘 http://www.ibm.com/developerworks/cn/opensource/os-weka1/WEKA使用教程 http://blog.csdn.net/yangliuy/article/details/7589306 初试w…

如何在TypeScript中使用JS类库

使用流程 1.首先要清除类库是什么类型&#xff0c;不同的类库有不同的使用方式 2.寻找声明文件 JS类库一般有三类&#xff1a;全局类库、模块类库、UMD库。例如&#xff0c;jQuery是一种UMD库&#xff0c;既可以通过全局方式来引用&#xff0c;也可以模块化引用。 声明文件 当我…

机器学习之 weka学习(六)最大内存

Weka 常见问题处理&#xff1a; weka如何安装支持向量机工具包 方法一、打开 weka&#xff0c;工具栏的Tools–>Package manager,可在里面添加需要的工具包。 方法二、下载 libsvm-**.jar 包&#xff0c;开源的。解压文件夹&#xff0c;里面……\libsvm-3.19\java ,下面有…

使用Jest进行单元测试

Jest是Facebook推出的一款单元测试工具。 安装 npm install --save-dev jest ts-jest types/jest 在package.json中添加脚本&#xff1a; “test”: "jest" 生成Jest配置文件&#xff08;生成jest.config.js&#xff09; npx ts-jest config:init 使用 先简单编写一个…