IO流-文本IO\读写二进制数据
文本IO
一、简述
OutputStreamWriter类使用选定的编码方式吧Unicode字符流转换为字节流,InputStreamReader类将包含字节的输入流转为可以产生Unicode字符的读入器。
例:
(1)InputStreamReader in = new InputStreamReader(System.in)让一个输入读入器可以从控制台读入输入并转换为Unicode
(2)InputStreamReader in = new InputStreamReader(new FileInputStream(“test.txt”), “ISO08859_5”);例(1)输入流读入器会使用主机系统默认字符编码格式,而此例显示了通过控制器指定编码格式
(3)FileWriter out = new FileWriter(“test.txt”);文件写出器
二、
1、写出文本输出
PrintWriter:这个类有以文本格式打印字符串和数字的方法
PrintWriter out = new PrintWriter(“test.txt”);等同于:… = new PrintWriter(new FileWriter(“test.txt”));
String name = “test”;
double var = 10000;
out.print(name);
out.println(var);
上例会将test 10000写出到写出器out,之后这些字符将会被转换成字节并最终写入到test.txt中
可以通过构造方法PrintWriter(Writer out , Boolean autoFlush)来设置是否自动清空缓冲区,当autoFlush设为true时只要调用println就会清空缓冲区。例:
PrintWriter out = new PrintWriter(new FIleWriter(“test.txt”) , true);
API:java.io.PrintWriter
(1)PrintWriter(Writer out)
(2)PrintWriter(Writer out , Boolean autoFlush)
创建一个新的PrintWriter
参数: out: 一个用于字符输出的写出器
autoFlush:是否自动清空
(3)PrintWriter(OutputStream out)
(4)PrintWriter(OutputStream out, boolean autoflush)
通过创建必需的中介OutputStreamWriter,从已有的OutputStream中创建一个新的PrintWriter。
(5)PrintWriter(String filename)
(6)PrintWriter(File file)
通过创建必需的中介FileWriter,创建一个向给定的文件写出的新的PrintWriter。
(7) void printf(String format, Object... args) 按照格式字符串指定的方式打印给定的值
(8)boolean checkError()如果产生格式化或输出错误,则返回true。一旦这个流碰到了错误,它就受到了感染,并且所有对checkError的调用都将返回true。
2、读入文本输入
可以用Scanner。1.5之前处理文本唯一方式是使用BufferedReader,该类有方法readLine可以读入一行文本,在没有输入时返回null,例:
BufferedReader in = new BufferedReader(new FileReader(“test.txt”));
String line;
While((line = in.readLine()) != null){
Pass..
}
注:BufferedReader没有用于读入数字的方法
读写二进制数据
一、
1、DataInputStream实现了DataInput接口,要想从文件中读入二进制数据需要将DataInputStream与字节源相结合例如FileInputStream:
DataInputStream in = new DataInputStream(new FileInputStream(“test.txt”));
DataOutputStream:
DataOutputStream = new DataOutputStream(new FileOutputStream(“test.txt”));
2、API:
DataInput:
readBoolean()、readByte()、readChar()、readDouble()、readFloat()、readInt()、…….
(1)
void readFully(byte[] b) 将字节读入到数组b中,其间阻塞直至所有字节都读入。
(2)
void readFully(byte[] b, int
off, int len) 将字节读入到数组b中,其间阻塞直至所有字节都读入。
参数:b 数据读入的缓冲区
off 数据起始位置的偏移量
len 读入字节的最大数量
(3)String readUTF():读入由“修订过的UTF-8”格式的字符构成的字符串。
DataOutput:
Void writeDouble(double d )……
(1)void writeChars(String s):
写出字符串中的所有字符。
(2)void writeUTF(String s): 写出由“修订过的UTF-8”格式的字符构成的字符串。
3、:
随机访问文件:
RandomAccessFile类可以在文件中任意位置查找或写入数据,可以打开一个随机访问文件,只用于读入或者同时用于读写
RandomAccessFile in = new
RandomAccessFile(“test.txt” , “r”);
RandomAccessFile inOut =
new RandomAccessFile(“test.txt” , “rw”); 当将已有文件打开成RandomAccessFile时,这个文件并不会被删除
API:java.io.RandomAccessFile
(1)RandomAccessFile(String
file,String mode)
RandomAccessFile(File
file , String mode)
参数:file 要打开的文件
mode “r”表示只读模式; “rw”表示读/写模式; “rws”表示每次更新时,都对数据和元数据的写磁盘操作进行同步的读/写模式;
“rwd”表示每次更新时,只对数据的写磁盘操作进行同步的读/写模式
(2)long getFilePointer():返回文件指针的当前位置
(3)void seek(long pos): 将文件指针从文件的开始设置到pos个字节处。
(4)long length()返回文件按照字节来度量的长度。
IO流-文本IO\读写二进制数据的更多相关文章
- 背水一战 Windows 10 (89) - 文件系统: 读写文本数据, 读写二进制数据, 读写流数据
[源码下载] 背水一战 Windows 10 (89) - 文件系统: 读写文本数据, 读写二进制数据, 读写流数据 作者:webabcd 介绍背水一战 Windows 10 之 文件系统 读写文本数 ...
- 重新想象 Windows 8 Store Apps (23) - 文件系统: 文本的读写, 二进制的读写, 流的读写, 最近访问列表和未来访问列表
原文:重新想象 Windows 8 Store Apps (23) - 文件系统: 文本的读写, 二进制的读写, 流的读写, 最近访问列表和未来访问列表 [源码下载] 重新想象 Windows 8 S ...
- Java读写二进制数据
import java.io.*; import java.time.LocalDate; public class Test { public static void main(String[] a ...
- 零基础学习java------day16-----文件,递归,IO流(字节流读写数据)
1.File 1.1 构造方法(只是创建已经存在文件的对象,并不能创建没有的文件) (1)public File(String pathname) (2)public File(String pare ...
- java IO流文件的读写具体实例(转载)
引言: 关于java IO流的操作是非常常见的,基本上每个项目都会用到,每次遇到都是去网上找一找就行了,屡试不爽.上次突然一个同事问了我java文件的读取,我一下子就懵了第一反应就是去网上找,虽然也能 ...
- java IO流文件的读写具体实例
IO流的分类:1.根据流的数据对象来分:高端流:所有的内存中的流都是高端流,比如:InputStreamReader 低端流:所有的外界设备中的流都是低端流,比如InputStream,Output ...
- C# IO流与文件读写学习笔记
本笔记摘抄自:https://www.cnblogs.com/liyangLife/p/4797583.html,记录一下学习过程以备后续查用. 一.文件系统 1.1文件系统类的介绍 文件操作类大都在 ...
- java io流 创建文件、写入数据、设置输出位置
java io流 创建文件 写入数据 改变system.out.print的输出位置 //创建文件 //写入数据 //改变system.out.print的输出位置 import java.io.*; ...
- 使用IO流创建文件并写入数据
/* 字符流和字节流: 字节流两个基类: InputStream OutputStream 字符流两个基类: Reader Writer 既然IO流是用于操作数据的, 那么数据的最常见体现形式是:文件 ...
随机推荐
- 用CSS绘制箭头等三角形图案 [译]
最近重新设计了我的网站,准备添加tooltips提示信息效果.实现很容易,但我想要让提示功能具有三角形的指示图标.当我重新思考想要所设计的每个图标颜色都随心所欲的时候,采用图片那就是一场灾难.幸运的是 ...
- JS——树形导航菜单(html的ul嵌套,jQuery的css(),show(),hide(),index()等方法)
必备工具:jquery库文件.我这里用的是1.4版本的. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...
- centos 安装apache 和 php5.6
centos 安装 php5.6,安装前需要先安装数据库和apache 安装 apache2.4 安装基础依赖:# yum install gcc gcc-c++ glibc glibc-devel ...
- Sphinx : 高性能SQL全文检索引擎
Sphinx的特点 快速创建索引:3分钟左右即可创建近100万条记录的索引,并且采用了增量索引的方式,重建索引非常迅速. 闪电般的检索速度:尽管是1千万条的大数据量,查询数据的速度也在毫秒级以上,2- ...
- Android性能优化典范第一季
2015年伊始,Google发布了关于Android性能优化典范的专题,一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App.课程专题不仅仅介绍了Android系统中有关 ...
- 如何用MediaCapture解决二维码扫描问题
二维码扫描的实现,简单的来说可以分三步走:“成像”.“截图”与“识别”. UWP开发中,最常用的媒体工具非MediaCapture莫属了,下面就来简单介绍一下如何利用MediaCapture来实现扫描 ...
- Fluxion 实战答疑
实战文章<实战-Fluxion与wifi热点伪造.钓鱼.中间人攻击.wifi破解>发布之后,大家响应热烈,不过也遇到了很多问题.微信后台被各种提问挤爆了,于是抓紧时间出了这篇答疑. 0x0 ...
- Java提高篇(三一)-----Stack
在Java中Stack类表示后进先出(LIFO)的对象堆栈.栈是一种非常常见的数据结构,它采用典型的先进后出的操作方式完成的.每一个栈都包含一个栈顶,每次出栈是将栈顶的数据取出,如下: Stack通过 ...
- JavaScript字符转Unicode,顺便说句:GitHub的Oh no页面很亮
遇到个输不出来的字符怎么办,因为输不出来的字符一般又是不常见大多数时候连名字也喊不出来的,所以想问百度谷歌大大也不大可能.如果是小白用户肯定会去把输入法软盘打开切换到其他键盘一个一个找.即使有搜狗输入 ...
- jeechart
个人网站地址:http://blog.niubua.com jeechart(1)——普通的分页查询 :http://blog.niubua.com/2014/09/18/jeechart(1)-普通 ...