Java:IO流之字符流Reader、Writer详解
import java.io.*;
class FileReaderDemo
{
public static void sop(Object obj)
{
System.out.print(obj);
}
public static void main(String[] args)throws IOException
{
//创建一个文件读取流对象,和指定名称的文件相关联起来。
//要保证该文件是已经存在的。如果不存在,会发生异常,即FileNotFoundException
FileReader fr = new FileReader("F:\\myfile\\test.txt"); //调用读取流对象的read方法。
//read方法:一次读取一次字符,而且会自动往后面读取字符。
int ch = 0;
while((ch=fr.read())!=-1)
{
sop((char)ch);
} /*
while(true)
{
int ch = fr.read();
if(ch==-1)
break;
sop((char)ch); //读取文件中的一个字符
}
*/
fr.close();
}
}
import java.io.*;
class FileReaderDemo2
{
public static void sop(Object obj)
{
System.out.print(obj);
}
public static void main(String[] args)throws IOException
{
//创建一个文件读取流对象,和指定名称的文件相关联起来。
//要保证该文件是已经存在的。如果不存在,会发生异常,即FileNotFoundException
FileReader fr = new FileReader("F:\\myfile\\test.txt"); //定义一个字符数组,用于存储读取的字符
char[] buf = new char[1024];
int num = 0;
while((num = fr.read(buf))!=-1)//num = fr.read(buf)返回是读取的字符个数,如果已到达流的末尾,则返回 -1
{
//String(char[] value, int offset, int count) 分配一个新的 String,它包含取自字符数组参数一个子数组的字符。
String str = new String(buf,0,num);
sop(str);
} fr.close();
} }
import java.io.*;
class FileWriterDemo
{
public static void main(String[] args) throws IOException
{
//第一步:
//创建一个FileWriter对象,该对象一被初始化就必须有明确的被操作的文件,而且该文件会被创建到指定的目录下
//如果该目录下已有同名文件,将会被覆盖。其实该步就是要明确数据要存放的目的地。
FileWriter fw = new FileWriter("F:\\myfile\\demo.txt"); //第二步:
//调用父类共性方法write方法,将数据写入到了流当中。
fw.write("asjdsjdfkskidkf,fdhjsdkjfdsk,dfhjdskj"); //第三步:
//调用父类共性方法flush方法,刷新流对象中的缓冲中的数据,将数据刷新到目的地中。
fw.flush(); //可以接着往目的地中写入数据
fw.write("xiayuanquan");
fw.flush(); //父类中的共性方法close方法,关闭流资源,但是关闭之前会刷新一次内部的缓冲中的数据,将数据刷新到目的地中去。
//和flush的区别:flush刷新后,流可以继续使用;而close刷新后,流会关闭,无法继续使用。
fw.write(" aaaaaaaaaaaaaa");
fw.close(); //Stream closed
//fw.write("xxxx"); //流已关闭,此时不能再向目的地的文件中写入数据 }
}
import java.io.*;
class FileWriterExceptionDemo
{
public static void main(String[] args)
{
FileWriter fw = null;
try
{
fw = new FileWriter("F:\\myfile\\Exception.txt");//创建目标文件 fw.write("my name is xiayuanquan!"); //往流里写入数据内容
}
catch(IOException ie)
{
System.out.println(ie.toString());
}
finally
{
try
{
if(fw!=null)
fw.close(); //先刷新流,将流中的数据内容刷到目标文件中,然后关闭流资源
}
catch(IOException ie)
{
System.out.println(ie.toString());
}
}
}
}
import java.io.*;
class FileWriterDemoappend
{
public static void main(String[] args)
{
FileWriter fw = null;
try
{
//传递一个ture参数,代表不覆盖已有的文件。并在已有文件的末尾处进行文件的续写。
fw = new FileWriter("F:\\myfile\\demo.txt",true);
fw.write(",,,wei-zhong-hua-jue-qi-er-du-shu");
fw.write("\r\nabc=abc");//'\r\n'代表换行,然后接着续写数据
}
catch(IOException e)
{
System.out.println(e.toString());
}
finally
{
try
{
if(fw!=null)
fw.close();
}
catch(IOException e)
{
System.out.println(e.toString());
}
}
}
}
import java.io.*;
class CopyText
{
public static void main(String[] args)throws IOException
{
FileReader fr = new FileReader("F:\\myfile\\practice.txt");
FileWriter fw = new FileWriter("F:\\myfile\\test.txt",true); //第一种方式:(先全部读完数据后存入缓冲区,再一次性续写入目标文件中)
int num=0;
char[] buf = new char[1024];
while((num = fr.read(buf))!=-1)
{
String str = new String(buf,0,num);
fw.write("\r\n"+str);
// fw.write(buf,0,num);
fw.close();
}
fr.close(); /*
//第二种方式:(每次读一个数据,就往目标文件中写入一个数据)
int num = 0;
while((num = fr.read())!=-1)
{
fw.write(num);
}
fw.write("\r\n");
fw.close();
fr.close();
*/
}
}
Java:IO流之字符流Reader、Writer详解的更多相关文章
- 系统学习 Java IO (十五)----字符读写 Reader/Writer 其他子类
目录:系统学习 Java IO---- 目录,概览 跟踪行号的缓冲字符输入流 LineNumberReader LineNumberReader 类是一个 BufferedReader ,用于跟踪读取 ...
- JAVA IO 字节流与字符流
文章出自:听云博客 题主将以三个章节的篇幅来讲解JAVA IO的内容 . 第一节JAVA IO包的框架体系和源码分析,第二节,序列化反序列化和IO的设计模块,第三节异步IO. 本文是第一节. ...
- Java IO 字节流与字符流 (五)
Java的IO流分为字符流(Reader,Writer)和字节流(InputStream,OutputStream),字节流顾名思义字节流就是将文件的内容读取到字节数组,然后再输出到另一个文件中.而字 ...
- java IO(三):字符流
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- Java IO 字节流与字符流 (三)
概述 IO流用来处理设备之间的数据传输 Java对数据的操作时通过流的方式 Java用于操作流的对象都在IO包中 流按操作的数据分为:字节流和字符流 流按流向不同分为:输入流和输出流 IO流常用基类 ...
- Java IO 字节流与字符流 (二)
1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序 ...
- Java——IO类,字符流写数据
body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...
- java io系列16之 PrintStream(打印输出流)详解
本章介绍PrintStream以及 它与DataOutputStream的区别.我们先对PrintStream有个大致认识,然后再深入学习它的源码,最后通过示例加深对它的了解. 转载请注明出处:htt ...
- Java——IO类,字符流读数据
body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...
- 缓冲字符流 java.io.BufferedWriter ,java.io.BufferedReader,缓冲字符输出流:PrintWriter
package seday07; import java.io.IOException;import java.io.PrintWriter; /*** @author xingsir * 缓冲字符流 ...
随机推荐
- android selector
android 选择器的使用 1.在drawable文件夹下面建一个xml文件,如item.xml,在eclipse中有selector这个选项 2.可以在布局文件.xml(配置android:lis ...
- 团队作业(NABC的分析)
我们的团队课题是游戏:躲避小球. 我认为它其中的一个优点是:丰富用户的短暂闲暇时间,使用户得到身心的放松 下面我将从N,A,B,C四个方面简述理由 N(需求):现代社会逐渐步入快节奏时代,大众生活压力 ...
- Struts2原码分析系列之一
struts2概述 在struts2的官网上有这么一句话,翻译为:Apache Struts2是一个为企业级应用打造的优秀的.可扩展的WEB框架,该框架旨在充分精简应用程序的开发周期,从而减少创建.发 ...
- 【转】eclipse下使用hibernate tools实现hibernate逆向工程
一.基本环境 Eclipse 3.6 AppFuse Struts2 2.1.0 JBoss Hibernate Tools 3.4.0 二.JBoss Hibernate Tools 3.4.0安装 ...
- 学习Linux第七天
1.shell echo $HOME 默认在shell中编写的变量全部是局部变量,如果重新打开console的话,那么这些变量将全部丢失,全局的变量可以写在文件~/.bashrc文件. 2.判断 !/ ...
- hdu 2686 Matrix 最小费用最大流
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2686 Yifenfei very like play a number game in the n*n ...
- 驱动笔记 - IO端口和IO内存
访问IO端口 (#include <asm/io.h>) 设备资源struct resource{ resource_size_t start; //资源起始物理地址 resource_s ...
- 对drupal的理解【转】
写本文是想跟刚用drupal的朋友,分享一下心得,国内用drupal的太少了,希望大家能好好交流. 希望几分钟看完后你能马上上手drupal,至少能理解hook,api,theme,module,cc ...
- React Native 简介:用 JavaScript 搭建 iOS 应用 (1)
[编者按]本篇文章的作者是 Joyce Echessa--渥合数位服务创办人,毕业于台湾大学,近年来专注于协助客户进行 App 软体以及网站开发.本篇文章中,作者介绍通过 React Native 框 ...
- C#索引器及示例
public class IndexSeletor<T> where T:struct { private List<T> _listObj; public IndexSele ...