流是指一连串流动的数据信号,以先进,先出的方式发送和接收的通道

流的分类
根据方向分为
输入流
所有接收,获得,读取的操作都是属于输入流
所有的输入流名字都带有input或Reader

输出流
所有发送,写的操作都是属入输出流
所有的输出流名字都带有output或Writer

根据格式划分

字节流
单字节为单位发送或接收数据,所有的数据格式都可以通过字节流来传输
但是字节流对中文(以及其他双字节的文字)格式不能直接支持,需要编码转换
字节流可以传输所有的文件包括二进制文件
字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的

字符流
双字节为单位(1字符)发送或接收数据,只能用于发送或接收文本格式的数据(比如txt文件),
本身支持中文(以及其他双字节文字)格式,不需要转码操作。
字符流只能传输文本文件
字符流在操作时使用了缓冲区,通过缓冲区再操作文件。

JAVA中流的结构图。

字符流复制文件

File file=new File("d:\\1.txt");
FileReader fr=new FileReader(file);
BufferedReader br=new BufferedReader(fr);//读取一行
File file2=new File("d:\\2.txt");
FileWriter fw=new FileWriter(file2);
BufferedWriter bw=new BufferedWriter(fw);//添加一行
String str=br.readLine();
while (str!=null) {
bw.write(str);
str=br.readLine();
}
bw.close();
fw.close();
br.close();
fr.close();

字节流复制文件

File file1 = new File("D:/1.gif");
File file2 = new File("D:/2.gif");
FileInputStream in = new FileInputStream(file1);
FileOutputStream out = new FileOutputStream(file2);
int a = in.read();
while(a!=-1){
out.write(a);
a = in.read();
}
out.close();
in.close();

IO字 节流/字符流 读取/写入文件的更多相关文章

  1. IO流,字节流复制文件,字符流+缓冲复制文件

    JAVAIO如果按流向分:输入流和输出流两种 输入流的基类:InputStream   Reader 输出流的基类:OutputStream   Writer 如果按数据单元划分:字节流和字符流 字节 ...

  2. java IO(三):字符流

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  3. io系列之字符流

    java中io流系统庞大,知识点众多,作为小白通过五天的视频书籍学习后,总结了io系列的随笔,以便将来复习查看. 本篇为此系列随笔的第一篇:io系列之字符流. IO流 :对数据的传输流向进行操作,ja ...

  4. Java IO 字节流与字符流 (五)

    Java的IO流分为字符流(Reader,Writer)和字节流(InputStream,OutputStream),字节流顾名思义字节流就是将文件的内容读取到字节数组,然后再输出到另一个文件中.而字 ...

  5. Java IO 字节流与字符流 (三)

    概述 IO流用来处理设备之间的数据传输 Java对数据的操作时通过流的方式 Java用于操作流的对象都在IO包中 流按操作的数据分为:字节流和字符流 流按流向不同分为:输入流和输出流 IO流常用基类 ...

  6. 用字符流实现每个文件夹中创建包含所有文件信息的readme.txt

    package com.readme; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; i ...

  7. 关于Python中读取写入文件并进行文件与用户交互的操作

    一.提前知识点 在python中是同样和其他语言一样可以进行文件的读取写入操作,值得注意的是,Python中打开文件读取的方式有几种,分别是以下几种: f = open('username.txt') ...

  8. pandas-19 DataFrame读取写入文件的方法

    pandas-19 DataFrame读取写入文件的方法 DataFrame有非常丰富的IO方法,比如DataFrame读写csv文件excel文件等等,操作很简单.下面在代码中标记出来一些常用的读写 ...

  9. c文件二进制读取写入文件、c语言实现二进制(01)转化成txt格式文本、c读取文件名可变

    c语言实现二进制(01)转化成txt格式文本: 下面的程序只能实现ascall对应字符转换,如果文件内出现中文字符,则会出现错误. 本程序要自己创建个文本格式的输入文件a1.txt,编译后能将文本文件 ...

随机推荐

  1. Android中设定EditText的输入长度(转)

    如何限定Android的Text中的输入长度呢? 方法一:可以在layout xml中加上属性android:maxLength 比如: <EditText         android:id ...

  2. Android使用JNI实现Java与C之间传递数据(转)

    介绍Java如何将数据传递给C和C回调Java的方法.  java传递数据给C,在C代码中进行处理数据,处理完数据后返回给java.C的回调是Java传递数据给C,C需要用到Java中的某个方法,就需 ...

  3. LR Analysis:详解FirstBufferTime

    LR Analysis:详解FirstBufferTime   详解 第 一次缓冲时间 测试结果分析过程中,经常遇到第一次缓冲时间 FirstBufferTime,并且发现大 部分系统的响应时间也都浪 ...

  4. 新的开始—js客户端onlick无法响应

    第一次写博客,也是为了以后遇到同样的问题时可以找到,onlick无法响应在百度一些都有解释,这只是一个个人记录而已 问题: function change_tp(ProInfo_id, color_i ...

  5. git学习 分支特殊处理和配置03

    Bug分支: 当在一个分支上工作的时候:突然到其它分支修复bug,当前分支工作还没到要提交的程度:这时候可以使用git stash来将工作分支暂时存储起来: 用git stash list查看stas ...

  6. delphi公共函数 UMyPubFuncFroc--版权所有 (C) 2008 勇者工作室

    {*******************************************************} { } { Delphi公用函数单元 } { } { 版权所有 (C) 2008 勇 ...

  7. stack

    stack介绍:先进后出 实现C++STL,栈有两个参数:template<class T,class Container = deque<T>> class stack: 参 ...

  8. WebApi:路由和Action选择

      译自:http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-and-action-selection   ...

  9. start bbs轻论坛安装时数据库提示错误

    A PHP Error was encounteredSeverity: NoticeMessage: Only variable references should be returned by r ...

  10. ora-14400插入的分区关键字未映射到任何分区---oracle数据库表过期问题

    楼主解决这个问题ora-14400插入的分区关键字未映射到任何分区,其原因是:分区表过期. 通过使用sql直接修改Date类型的字段可以证实,修改成过期以后的时间出现下列提示,修改成过期之前的则可以. ...