字节流:
        FileInputStream读取,FileOutputStream输出

  字节流使用数组缓冲区复制文件,最后得出所使用的时间

         public class work2 {
public static void main(String[] args) {
FileOutputStream out=null;
FileInputStream in=null;
Date a=new Date();
try {
out=new FileOutputStream("D:\\test\\d\\eclipse.zip");
in=new FileInputStream("D:\\test\\eclipse.zip");
byte[] b=new byte[1024*1024];
int len=0; while((len=in.read(b))!=-1)
{
out.write(b,0,len);
}
} catch (IOException e) { e.printStackTrace();
}finally{
try {
out.close();
} catch (IOException e) { e.printStackTrace();
}
try {
in.close();
} catch (IOException e) { e.printStackTrace();
}
}
Date b=new Date();
System.out.println(b.getTime()-a.getTime());
}
}

字符流:
        FileReader 字节流读取  FileWriter 字节流输出

  字节流使用数组缓冲区复制文件

         public class copy {
public static void main(String[] args) throws IOException {
FileReader fr=new FileReader("D:\\test\\a.txt");
FileWriter fw=new FileWriter("D:\\test\\d\\a.txt");
char[] ch=new char[2];
int len=0; while((len=fr.read(ch))!=-1)
{
fw.write(ch,0,len);
System.out.println((char)len);
fw.flush();
}
fw.close();
fr.close();
}
}

转换流:

  借助字节流写入方法,将字节流转换成字符流并且规定编码格式,例如编码格式为utf-8
        FileOutputStream fo=new FileOutputStream("D:\\test\\d\\utf.txt");

OutputStreamWriter osw=new OutputStreamWriter(fo, "utf-8");

FileInputStream fi=new FileInputStream("D:\\test\\utf.txt");

InputStreamReader isr=new InputStreamReader(fi,"utf-8");

缓冲区:
        //字符流缓冲区
        FileReader fr=new FileReader("D:\\test\\aaa.txt");
        BufferedReader br=new BufferedReader(fr);
        //明确目的地
        FileWriter fw=new FileWriter("D:\\test\\d\\aaa.txt");
        BufferedWriter bw=new BufferedWriter(fw);

//字节流缓冲区
        FileInputStream fi=new FileInputStream("D:\\codetool\\eclipse.zip");
        BufferedInputStream bi=new BufferedInputStream(fi);
        FileOutputStream fo=new FileOutputStream("D:\\test\\eclipse.zip");
        BufferedOutputStream bo=new BufferedOutputStream(fo);

  跨平台换行:.newLine();
  读取一整行:readline();

Properties类
用于操作配置文件,后缀名只能是properties的文件

方法:
    load(input字符流或字节流对象);
    store(output字符流或字节流对象,描述信息);
        
写入:
    创建对象:Properties prop = new Properties();
    写入prop集合:prop.setProperty("周迅", "张学友");
    创建字符流文件写入:FileWriter out = new FileWriter("prop.properties");
    写入:prop.store(out,"描述");

取出:
    创建集合:Properties prop = new Properties();
        创建流对象:
        FileInputStream in = new FileInputStream("prop.properties");
              //FileReader in = new FileReader("prop.properties");
        把流所对应文件中的数据 读取到集合中:
        prop.load(in);
        4,关闭流:
        in.close();
        5,显示集合中的数据:
        System.out.println(prop);

IO字节流与字符流的操作的更多相关文章

  1. IO流回顾与总结第一篇之字节流与字符流的操作。。。。。

    一.引言 趁着年后的这点时间,抓紧点时间回顾下javase中的IO流,以往都是用到那些常用的IO类,这次来个全点的,有不对的地方还请大神指正一下,做到坚持写博的习惯来...... 回归正题,IO流顾名 ...

  2. JAVA IO 字节流与字符流

    文章出自:听云博客 题主将以三个章节的篇幅来讲解JAVA IO的内容 . 第一节JAVA IO包的框架体系和源码分析,第二节,序列化反序列化和IO的设计模块,第三节异步IO. 本文是第一节.     ...

  3. 14、IO (字节流、字符流)

    输入和输出 * A:输入和输出 * a: 参照物 * 到底是输入还是输出,都是以Java程序为参照 * b: Output * 把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作 ...

  4. 字节流与字符流简单操作(OutputStream、InputStream、Writer、Reader)

    操作流程 使用File类打开一个文件 通过字节流或者字符流的子类.指定输出的位置. 进行读/写操作 关闭输入/出 字节流与字符流 在java.io包中操作文件内容主要有两大类:字节流字符流.两大类分为 ...

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

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

  6. Java IO 字节流与字符流 (二)

    1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序 ...

  7. Java提高篇(二):IO字节流、字符流和处理流

    在我们的Java语言当中,通常会有对文件进行读写,因此我们引入java的IO类来进行文件的读写. 一.字节流 下面是一个字节流的实例: import java.io.*; public class I ...

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

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

  9. java 字节流与字符流的区别

    字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢?实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作 ...

随机推荐

  1. 瑞银预计小扎的十年规划可获大回报 上调Facebook股票目标价

    瑞银认为马克·扎克伯格(Mark Zuckerberg)为Facebook定制的十年规划将带来丰厚回报,它已将Facebook股票的目标价由之前的155美元上调至165美元. Facebook首席执行 ...

  2. RAID、LVM和btrfs文件系统

    一.RAID: Redundant Arrays of Inexpensive Disks,廉价磁盘冗余阵列: Redundant Arrays of Independent Disks,独立磁盘冗余 ...

  3. 关于Python的JSON

    1.json模块load/loads.dump/dumps区别:(摘自这里) 实际上json就是python字典的字符串表示,但是字典作为一个复杂对象是无法直接转换成定义它的代码的字符串,python ...

  4. Java 线程池(ThreadPoolExecutor)原理分析与实际运用

    在我们的开发中"池"的概念并不罕见,有数据库连接池.线程池.对象池.常量池等等.下面我们主要针对线程池来一步一步揭开线程池的面纱. 有关java线程技术文章还可以推荐阅读:< ...

  5. 程序员还在用360,腾讯电脑管家清理注册表,清理垃圾?只能说你太low

    首先明明电脑上,就有清理垃圾和无用注册表的功能,只是我么缺少发现美的眼睛. 为什么不用360,腾讯全家桶. 那玩意固然香,而且真香,但是后台占用率太高,作为一个有洁癖的我,实在是不想看到自己右下角多一 ...

  6. 初次认识Ngnix

    这几天写那个HTTPD,最后觉得学到的好像很少,而且就算最后运行成功了好像也没有什么.所以想学习一些生活中真正在运用着的web服务器, 上网查询了些资料了解到apache, lighttpd, ngi ...

  7. 1-MyBatisPlus教程(一)

    1,简介 官网:http://mp.baomidou.com/ 参考教程:http://mp.baomidou.com/guide/ MyBatis-Plus(简称 MP)是一个 MyBatis 的增 ...

  8. 最小点覆盖(König定理)

    König定理是一个二分图中很重要的定理,它的意思是,一个二分图中的最大匹配数等于这个图中的最小点覆盖数.如果你还不知道什么是最小点覆盖,我也在这里说一下:假如选了一个点就相当于覆盖了以它为端点的所有 ...

  9. 认识mysql3个基本库

    一.3个基本库 数据库初始化安装完毕会有三个基本库mysql .information_schema.performace_schema.作为应用程序开发者,平时较少关注这些数据库尤其是后两者.但是通 ...

  10. qgis控制滚轮转动地图比例尺的变化幅度

    需求:在比例尺1万-10万之间,鼠标滚轮转动比例尺的变化幅度为1万重写滚轮事件 void Xx::wheelEvent(QWheelEvent*event){ double curScale = sc ...