黑马程序员:Java基础总结----字符流Reader&Writer
来源:互联网 发布:北电网络的业务有哪些 编辑:程序博客网 时间:2024/05/23 02:05
黑马程序员:Java基础总结
字符流Reader&Writer
ASP.Net+Android+IO开发、.Net培训、期待与您交流!
字符流
将指定字符添加到此 writer。
关闭此流,但要先刷新它。
刷新该流的缓冲。
写入字符串。
根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象。
根据给定的 File 对象构造一个 FileWriter 对象。
创建一个使用默认大小输出缓冲区的缓冲字符输出流。
该缓冲区中提供了一个跨平台的换行符。
newLine();
写入一个行分隔符。
读取单个字符。如果已到达流的末尾,则返回 -1
将字符读入数组的某一部分。
创建一个使用默认大小输入缓冲区的缓冲字符输入流。
读取一个文本行。包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null
获得当前行号。
设置当前行号。
字符流两个基类:
Reader Writer
Reader Writer
类 Writer 方法
Writer
append(char c)
将指定字符添加到此 writer。
abstract void
close()
关闭此流,但要先刷新它。
abstract void
flush()
刷新该流的缓冲。
void
write(String str)
写入字符串。
//创建一个FileWriter对象。该对象一被初始化就必须要明确被操作的文件。
//而且该文件会被创建到指定目录下。如果该目录下已有同名文件,将被覆盖。
//其实该步就是在明确数据要存放的目的地。
FileWriter fw = new FileWriter("demo.txt" );
//调用write方法,将字符串写入到流中。
fw .write("abcde");
//刷新流对象中的缓冲中的数据。
//将数据刷到目的地中。
//fw. flush();
//关闭流资源,但是关闭之前会刷新一次内部的缓冲中的数据。
//将数据刷到目的地中。
//和flush区别:flush刷新后,流可以继续使用,close刷新后,会将流关闭。
fw. close();
类 FileWriter
FileWriter(String fileName, boolean append)
根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象。
FileWriter(File file, boolean append)
根据给定的 File 对象构造一个 FileWriter 对象。
//传递一个true参数,代表不覆盖已有的文件。并在已有文件的末尾处进行数据续写。
FileWriter fw = new FileWriter("demo.txt",true );
fw.write( "nihao\r\nxiexie");
fw.close()
类 BufferedWriter
BufferedWriter(Writer out)
创建一个使用默认大小输出缓冲区的缓冲字符输出流。
缓冲区的出现是为了提高流的操作效率而出现的。
所以在创建缓冲区之前,必须要先有流对象。
所以在创建缓冲区之前,必须要先有流对象。
该缓冲区中提供了一个跨平台的换行符。
newLine();
void
newLine()
写入一个行分隔符。
BufferedReader bufr = null ;
BufferedWriter bufw = null;
try
{
bufr = new BufferedReader(new FileReader("BufferedWriterDemo.java" ));
bufw = new BufferedWriter(new FileWriter("bufWriter_Copy.txt" ));
String line = null;
while((line=bufr.readLine())!=null)
{
bufw.write(line);
bufw.newLine();
bufw.flush();
}
}
类 Reader 方法
int
read()
读取单个字符。如果已到达流的末尾,则返回 -1
abstract int
read(char[] cbuf, int off, int len)
将字符读入数组的某一部分。
类 FileReader
构造同FileWriter,方法同Reader,
FileWriter fw = null;
FileReader fr = null;
try
{
fw = new FileWriter("SystemDemo_copy.txt");
fr = new FileReader("SystemDemo.java");
char[] buf = new char[1024];//提高效率
int len = 0;
while((len=fr.read(buf))!=-1)
{
fw.write(buf,0,len);
}
}
类 BufferedReader
BufferedReader(Reader in)
创建一个使用默认大小输入缓冲区的缓冲字符输入流。
字符读取流缓冲区:
该缓冲区提供了一个一次读一行的方法 readLine,方便于对文本数据的获取。
当返回null时,表示读到文件末尾。
readLine方法返回的时候只返回回车符之前的数据内容。并不返回回车符。(windows中回车是\r\n)
该缓冲区提供了一个一次读一行的方法 readLine,方便于对文本数据的获取。
当返回null时,表示读到文件末尾。
readLine方法返回的时候只返回回车符之前的数据内容。并不返回回车符。(windows中回车是\r\n)
String
readLine()
读取一个文本行。包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null
String line = null ;
while((line=bufr.readLine())!=null)
{
System.out.print(line);
}
类 LineNumberReader extends BufferedReader
特有方法:
int
getLineNumber()
获得当前行号。
void
setLineNumber(int lineNumber)
设置当前行号。
默认情况下,行编号从 0 开始。该行号随数据读取在每个行结束符处递增,并且可以通过调用
setLineNumber(int)
更改行号。但要注意的是,setLineNumber(int)
不会实际更改流中的当前位置;它只更改将由 getLineNumber() 返回的值。下面模拟了这一过程
import java.io.*;
class MyLineNumberReader {
private Reader r ;
private int lineNumber ;
MyLineNumberReader(Reader r) {
this.r = r;
}
public String myReadLine() throws IOException {
lineNumber++;
StringBuilder sb = new StringBuilder();
int ch = 0;
while ((ch = r .read()) != -1) {
if (ch == '\r' )
continue;
if (ch == '\n' )
return sb.toString();
else
sb.append(( char) ch);
}
if (sb.length() != 0)
return sb.toString();
return null ;
}
public void setLineNumber(int lineNumber) {
this.lineNumber = lineNumber;
}
public int getLineNumber() {
return lineNumber ;
}
public void myClose() throws IOException {
r.close();
}
}
public class Ts {
public static void main(String[] args) throws IOException {
FileReader fr = new FileReader("copyTextByBuf.java" );
MyLineNumberReader mylnr = new MyLineNumberReader(fr);
String line = null;
mylnr.setLineNumber(100);
while ((line = mylnr.myReadLine()) != null) {
System. out.println(mylnr.getLineNumber() + "::" + line);
}
mylnr.myClose();
}
}
ASP.Net+Android+IO开发、.Net培训、期待与您交流!
- 黑马程序员:Java基础总结----字符流Reader&Writer
- 黑马程序员---IO流(字符流Writer、Reader)
- 黑马程序员——java基础 io 流 四个基类InputStream,OutputStream,Reader,Writer
- 黑马程序员--------java IO流 Reader、Writer、InputStream、OutputStream
- Java基础----Reader、Writer
- 字符流:Writer、Reader
- 字符流Reader & Writer
- Java IO 字符流 Reader和Writer
- Java中的字符流Reader和Writer
- Java - IO - 字符流 - Writer - Reader
- Java知识(字符流Reader和Writer)
- 黑马程序员—Java IO流(Writer、Reader、FileWriter、FileReader、BufferedWriter、BufferedReader)
- 黑马程序员_<<IO流基本操作(Writer,Reader)>>
- 字符流Reader和Writer
- 黑马程序员_学习笔记:13) IO流: 字节流(InputStream、OutputStream)、字符流(Reader、Writer)、File类、递归
- java中 Reader Writer 类对字符流的读写
- java 字符流writer、reader基本操作及理解
- Java-IO之字符输入输出流(Reader和Writer)
- 黑马程序员:Java基础总结----IO(Input Output)流概述
- 如何获得窗口句柄(FindWindow函数的使用)
- 求解1-100以内约数个数是12个的数 (已知共有5个)
- 用EasyMock进行单元测试:什么是EasyMoc
- Flex动态匹配查找简单实现源码
- 黑马程序员:Java基础总结----字符流Reader&Writer
- 程序媛华丽丽的转身
- 黑马程序员:Java基础总结----字节流&InputStream &OutputStream
- 一条SQL搞定九九乘法表(6种方法,网上集锦)
- android网络下载及保存
- python抓取网页学习(1)--urllib/urllib2/requests
- fcntl的用法
- CSS元素定位
- 黑马程序员:Java基础总结----字符字节转换流&system.in&out