Java基于字符流形式读写数据的两种实现方法示例
本文实例讲述了Java基于字符流形式读写数据的两种实现方法。分享给大家供大家参考,具体如下:
第一种方式:逐个字符进行读写操作(代码注释以及详细内容空闲补充)
package IODemo; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class CopyFileDemo { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { FileReader fr=new FileReader("Demo.txt"); FileWriter fw=new FileWriter("Demo1.txt"); int ch=0; while((ch=fr.read())!=-1){//单个字符进行读取 fw.write(ch);//单个字符进行写入操作 } fw.close(); fr.close(); } }
第二种方式:自定义缓冲区,使用read(char buf[])
方法,此方法较为高效
package IODemo; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class CopyFileDemo2 { private static final int BUFFER_SIZE = 1024; /** * @param args */ public static void main(String[] args) { FileReader fr = null; FileWriter fw = null; try { fr = new FileReader("Demo.txt");//工程所在目录 fw = new FileWriter("Demo2.txt"); char buf[] = new char[BUFFER_SIZE]; int len = 0; while ((len = fr.read(buf)) != -1) { fw.write(buf, 0, len); } } catch (Exception e) { // TODO: handle exception } finally { if (fr != null) { try { fr.close(); } catch (IOException e) { System.out.println("读写失败"); } } if (fw != null) { try { fw.close(); } catch (IOException e) { System.out.println("读写失败"); } } } } }
更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java文件与目录操作技巧汇总》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
相关推荐
-
详解Java中字符流与字节流的区别
本文为大家分析了Java中字符流与字节流的区别,供大家参考,具体内容如下 1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个"流动的方向",通常可以从中读入一个字节序列的对象被称为输入流:能够向其写入一个字节序列的对象被称为输出流. 2. 字节流 Java中的字节流处理的最基本单位为单个字节,它通常用来处理二进制数据.Java中最基本的两个字节流类是InputStream和Out
-
Java字符流和字节流对文件操作的区别
记得当初自己刚开始学习Java的时候,对Java的IO流这一块特别不明白,所以写了这篇随笔希望能对刚开始学习Java的人有所帮助,也方便以后自己查询.Java的IO流分为字符流(Reader,Writer)和字节流(InputStream,OutputStream),字节流顾名思义字节流就是将文件的内容读取到字节数组,然后再输出到另一个文件中.而字符流操作的最小单位则是字符.可以先看一下IO流的概述: 下面首先是通过字符流对文件进行读取和写入: package lib; import java.
-
java用重定向方法从文件中读入或写入数据
用重定向方法从文件中读入或写入数据 1.问题描述 先产生10000个随机数,每十个一行,放入文件中.(用重定向方法) 用重定向方法,从文件中读入10000个数字,打印出前十名.(不许调用排序方法) 2.程序如下: 2.1 写入 import java.util.Scanner; import java.util.List; import java.util.ArrayList; public class A{ static void to_txt(){ for(int i=1;i<=100
-
java字符流缓冲区详解
本文实例为大家分享了java字符流缓冲区的具体方法,供大家参考,具体内容如下 1. 为什么要缓冲区? 程序频繁地操作一个资源(如文件),则性能会很低,此时为了提升性能,就可以将一部分数据暂时读入到内存的一块区域中,以后直接从此区域中读取数据即可,因为读内存速度比较快,这样提高性能.在IO中引入缓冲区,主要是提高流的读写效率. 2. 缓冲技术的原理? 总的来说,缓冲区就是内存里的一块区域,把数据先存内存里,然后一次性写入,类似数据库的批量操作,这样效率比较高 3. BufferedWriter类
-
java 读写Parquet格式的数据的示例代码
本文介绍了java 读写Parquet格式的数据,分享给大家,具体如下: import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.Random; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; im
-
Java编程中字节流与字符流IO操作示例
IO流基本概念 IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的对象都是在IO包上 流按操作数据分为两种:字节流和字符流 流按流向分为:输入流,输出流. 字节流的抽象基类:InputStream,OutputStream 字符流的抽象基类:Reader,Writer 注:由这4个类派生出来的子类名称都是以其父类名作为子类名的后缀. 如:InputStream的子类:FileInputStream 如:Reader的子类FileReader 如创建一个F
-
java 序列化对象 serializable 读写数据的实例
序列化对象: 复制代码 代码如下: package com.chen.seriaizable; import java.io.Serializable;import java.util.List; @SuppressWarnings("serial")public class Student implements Serializable{ private String name; private String id; private int age; private List<
-
Java文件(io)编程之文件字符流使用方法详解
本文实例为大家分享了文件字符流的使用方法,供大家参考,具体内容如下 案例1: 读取一个文件并写入到另一个文件中,char[] 来中转. 首先要在E盘下创建一个文本文档,命名为test.txt,输入一些字符串. public class Demo_5 { public static void main(String[] args) { FileReader fr=null; //文件取出字符流对象(输入流) FileWriter fw=null; //写入到文件(输出流) try { fr=new
-
Java字符流与字节流区别与用法分析
本文实例讲述了Java字符流与字节流区别与用法.分享给大家供大家参考,具体如下: 字节流与字符流主要的区别是他们的的处理方式 流分类: 1.Java的字节流 InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先. 2.Java的字符流 Reader是所有读取字符串输入流的祖先,而writer是所有输出字符串的祖先. InputStream,OutputStream,Reader,writer都是抽象类.所以不能直接new 字节流是最基本的,所有的Inpu
-
Java基于字符流形式读写数据的两种实现方法示例
本文实例讲述了Java基于字符流形式读写数据的两种实现方法.分享给大家供大家参考,具体如下: 第一种方式:逐个字符进行读写操作(代码注释以及详细内容空闲补充) package IODemo; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class CopyFileDemo { /** * @param args * @throws IOException */ p
-
java 在file的尾部添加数据的两种方法总结
java 在file的尾部添加数据的两种方法总结 问题描述: 在文件的末尾追加内容 方法1:利用RandomAccessFile类 1.将randomAccessFile模式设置为rw 2将randomAccessFile移动(seek)到文件末尾 3追加数据 4关闭流 方法2:利用FileWriter类 1.将FileWriter构造方法第二个参数置为true.表示在尾部追加 2追加数据 3.关闭流 实现代码: package cn.com; import java.io.F
-
Android之Intent附加数据的两种实现方法
本文实例讲述了Android之Intent附加数据的两种实现方法.分享给大家供大家参考.具体如下: 第一种写法,用于批量添加数据到Intent: Intent intent = new Intent(); Bundle bundle = new Bundle(); //该类用作携带数据 bundle.putString("name", "林计钦"); intent.putExtras(bundle); //为意图追加额外的数据,意图原来已经具有的数据不会丢失,但ke
-
mysql通过group by分组取最大时间对应数据的两种有效方法
1.项目记录表project_record的结构和数据如下: 以下为项目记录表project_record的所有数据.project_id为项目Id,on_project_time为上项目时间.(每一条数据代表着上某个项目(project_id)的时间(on_project_time)记录) 2.我们的需求是:取出每个项目中最大上项目时间对应的那条数据.(即根据project_id分组,取出每组中最大的on_project_time对应的数据.)上方红框是我们要查出的数据. 3.错误代码: SE
-
Java基础教程之字符流文件读写
前言 上篇文章,我们介绍了 Java 的文件字节流框架中的相关内容,而我们本篇文章将着重于文件字符流的相关内容. 首先需要明确一点的是,字节流处理文件的时候是基于字节的,而字符流处理文件则是基于一个个字符为基本单元的. 但实际上,字符流操作的本质就是「字节流操作」+「编码」两个过程的封装,你想是不是,无论你是写一个字符到文件,你需要将字符编码成二进制,然后以字节为基本单位写入文件,或是你读一个字符到内存,你需要以字节为基本单位读出,然后转码成字符. 理解这一点很重要,这将决定你对字符流整体上的理
-
Java基于对象流实现银行系统
Java基于对象流实现银行系统的具体代码,供大家参考,具体内容如下 系统特点: 数据持久化到文件中,系统启动后,加载文件中数据到集合中,相当于做了一个缓存. 文件读写使用的是对象流(ObjectInputStream和ObjectOutputStream),用户是看不懂那些文件的,一定程度上保证了密码和余额的安全性. 采用了MVC分层设计思想,虽然没有C控制层和V视图层,但是有完备的M模型层,数据处理Service,数据读写Dao,数据存储POJO(每一层只负责处理自己的事情,层次内部的改动不会
-
Java基于IO流读取文件的方法
本文实例讲述了Java基于IO流读取文件的方法.分享给大家供大家参考,具体如下: public static void readFile(){ String pathString = TEST.class.getResource("/simu").getFile(); try { pathString = URLDecoder.decode(pathString, "utf-8"); } catch (UnsupportedEncodingException e1)
-
Java基于JDBC连接数据库及显示数据操作示例
本文实例讲述了Java基于JDBC连接数据库及显示数据操作.分享给大家供大家参考,具体如下: 1. 导入jdbc包 java要连接MySQL数据库需要用到JDBC工具(mysql-connector-java-5.1.39-bin.jar),这是一个jar包,不同的数据库对应不同的jar包,这里用的是MySQL数据库jar包,导入很简单,鼠标对项目右击 - Build Path - Configure Build Path - 右侧选Libraries - Add External JARs,选
-
Java编程通过list接口实现数据的增删改查代码示例
List接口常用的实现ArrayList. 常用方法:add(Object obj) 增加一个元素 add(int index,Object obj) 在指定索引位置添加元素 remove(int index) 删除指定位置的元素 remove(Objiect) 从列表中删除元素 set(index,Object) 修改指定位
随机推荐
- Ruby中Hash哈希结构的基本操作方法小结
- TCP 四种定时器(重传定时器,坚持计时器,保活定时器,时间等待计时器)
- Java 运算符 动力节点Java学院整理
- Oracle数据库按时间进行分组统计数据的方法
- Oracle PL/SQL入门慨述
- javascript简单写的判断电话号码实例
- 原生JS实现表单checkbook获取已选择的值
- Android自定义View实现loading动画加载效果
- mysql启动错误之mysql启动报1067错误解决方法
- JavaScript中动态向表格添加数据
- 基于EJB技术的商务预订系统的开发
- 利用soaplib搭建webservice详细步骤和实例代码
- 小谈RADMIN的几个小技巧
- IE下通过a实现location.href 获取referer的值
- 自适应图片大小的弹出窗口
- Windows下Memcache的安装方法
- 云网在线支付漏洞初探(图)
- node.js中的console.assert方法使用说明
- Android中如何实现清空搜索框的文字
- 高德地图WEB版基础控件展示 原创