`

java-io初步:Reader、Writer、Buf…

 
阅读更多

java四个基本的io基类:

字节流:InputStream、OutputStream

字符流:Reader、Writer.——作为硬盘的文件使用的两个子类:FileWriter、FileReader.

<wbr></wbr>

1、java早期只有字节流,后边由于处理不同字符的编码需求,出现了字符流.

2、java io体系中子类的命名通常都是以父类的名称作为后缀.

<wbr></wbr>

<wbr></wbr>

import java.io.*;
class IODemo
{
<wbr>public static void main(String[] args) // throws Exception<br><wbr>{<br><wbr><wbr>//fileWrite();<br><wbr><wbr>//fileRead();<br><wbr><wbr>//bufferdWrite();<br><wbr><wbr>//bufferdRead();</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr>//通过缓冲区拷贝一个.java文件<br><wbr><wbr>copyJavaFile();<br><wbr>}</wbr></wbr></wbr></wbr></wbr>

<wbr>public static void fileWrite()<br><wbr>{<br><wbr><wbr>FileWriter fw = null;<wbr> //fw.close()调用需要引用fw.<br><wbr><wbr>try<br><wbr><wbr>{<br><wbr><wbr><wbr>fw = new FileWriter("iodemo.txt", false); //第二个参数决定是否向覆盖原文件.<br><wbr><wbr><wbr>fw.write("sddddddd");<wbr><wbr><wbr><br><wbr><wbr><wbr>fw.write("\r\naaa");<wbr>//windows\r\n为一个回车符.<wbr><wbr><br><wbr><wbr>}<br><wbr><wbr>catch (Exception e)<br><wbr><wbr>{<br><wbr><wbr><wbr>System.out.println(e.toString());<br><wbr><wbr>}<br><wbr><wbr>finally<br><wbr><wbr>{<br><wbr><wbr><wbr>try<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr>fw.close();<br><wbr><wbr><wbr>}<br><wbr><wbr><wbr>catch (Exception e)<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr>System.out.println(e.toString());<br><wbr><wbr><wbr>}<br><wbr><wbr>}<br><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr>public static void fileRead()<br><wbr>{<br><wbr><wbr>//读取文件通用格式:<br><wbr><wbr>//建立字符流读取对象,于指定文件关联<br><wbr><wbr>FileReader fr = null;<br><wbr><wbr>try<br><wbr><wbr>{<br><wbr><wbr><wbr>fr = new FileReader("iodemo.txt");<br><wbr><wbr><wbr>char[] arr = new char[1024];<wbr> //将读出的数据存入到数组中.(缓存)<br><wbr><wbr><wbr>int num = 0;<br><wbr><wbr><wbr>while ((num = fr.read(arr)) != -1) //没有读到数据后,返回-1,循环结束;read方法可以自动向后读取剩下的数据,<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr>System.out.println(new String(arr, 0, num));<br><wbr><wbr><wbr>}<br><wbr><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>


<wbr><wbr>catch (Exception e)<br><wbr><wbr>{<br><wbr><wbr><wbr>System.out.println(e.toString());<br><wbr><wbr>}<br><wbr><wbr>finally<br><wbr><wbr>{<br><wbr><wbr><wbr>try<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr>fr.close();<br><wbr><wbr><wbr>}<br><wbr><wbr><wbr>catch (Exception e)<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr>System.out.println(e.toString());<br><wbr><wbr><wbr>}<br><wbr><wbr>}<br><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr>public static void bufferdWrite()<br><wbr>{<br><wbr><wbr>//创建流对象<wbr><wbr><br><wbr><wbr>FileWriter fw = null;<br><wbr><wbr>//创建缓冲区跟流对象关联。<br><wbr><wbr>BufferedWriter bfdw = null;<br><wbr><wbr>try<br><wbr><wbr>{<br><wbr><wbr><wbr>fw = new FileWriter("iodemo.txt");<br><wbr><wbr><wbr>bfdw = new BufferedWriter(fw);<br><wbr><wbr><wbr>int i = 0;<br><wbr><wbr><wbr>while (i &lt; 5)<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr>bfdw.write("aaa" + i);<br><wbr><wbr><wbr><wbr>bfdw.newLine();<wbr><br><wbr><wbr><wbr><wbr>bfdw.flush();<br><wbr><wbr><wbr><wbr>i++;<br><wbr><wbr><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr>bfdw.write("xxx"); //不调用flush或close,这一行数据不能写入.<br><wbr><wbr><wbr>bfdw.newLine();<br><wbr><wbr>}<br><wbr><wbr>catch (Exception e)<br><wbr><wbr>{<br><wbr><wbr><wbr>System.out.println(e.toString());<br><wbr><wbr>}<br><wbr><wbr>finally<br><wbr><wbr>{<br><wbr><wbr><wbr>try<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr>bfdw.close();<wbr> //缓冲区的关闭是调用传入流的关闭方法.<br><wbr><wbr><wbr>}<br><wbr><wbr><wbr>catch (Exception e)<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr>System.out.println(e.toString());<br><wbr><wbr><wbr>}<br><wbr><wbr>}<br><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr>public static void bufferdRead()<br><wbr>{<br><wbr><wbr>//创建流对象<br><wbr><wbr>FileReader fr = null;<br><wbr><wbr>//创建缓冲区跟流对象关联。<br><wbr><wbr>BufferedReader bfdr = null;<br><wbr><wbr>try<br><wbr><wbr>{<br><wbr><wbr><wbr>fr = new FileReader("iodemo.txt");<wbr><wbr><wbr><wbr><br><wbr><wbr><wbr>bfdr = new BufferedReader(fr);<br><wbr><wbr><wbr>String s;<br><wbr><wbr><wbr>while ( (s = bfdr.readLine()) != null)<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr>System.out.println(s);<br><wbr><wbr><wbr>}<br><wbr><wbr>}<br><wbr><wbr>catch (Exception e)<br><wbr><wbr>{<br><wbr><wbr><wbr>System.out.println(e.toString());<br><wbr><wbr>}<br><wbr><wbr>finally<br><wbr><wbr>{<br><wbr><wbr><wbr>try<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr>bfdr.close();<wbr> //缓冲区的关闭是调用传入流的关闭方法.<br><wbr><wbr><wbr>}<br><wbr><wbr><wbr>catch (Exception e)<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr>System.out.println(e.toString());<br><wbr><wbr><wbr>}<br><wbr><wbr>}<br><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr>public static void copyJavaFile()<br><wbr>{<br><wbr><wbr>//创建流对象<br><wbr><wbr>FileReader fr = null;<br><wbr><wbr>FileWriter fw = null;<br><wbr><wbr>//创建缓冲区跟流对象关联。<br><wbr><wbr>BufferedReader bfdr = null;<br><wbr><wbr>BufferedWriter bfdw = null;<br><wbr><wbr>try<br><wbr><wbr>{<br><wbr><wbr><wbr>fr = new FileReader("iodemo.java");<br><wbr><wbr><wbr>fw = new FileWriter("iodemo复件.txt");<br><wbr><wbr><wbr>bfdr = new BufferedReader(fr);<br><wbr><wbr><wbr>bfdw = new BufferedWriter(fw);<br><wbr><wbr><wbr>String line;<br><wbr><wbr><wbr>while ( (line = bfdr.readLine()) != null)<wbr> //readLine没有读取回车符,只读取了回车符前的数据,因此写入文本时需要执行newLine方法.<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr>bfdw.write(line);<br><wbr><wbr><wbr><wbr>bfdw.newLine();<br><wbr><wbr><wbr><wbr>bfdw.flush();<br><wbr><wbr><wbr><wbr>//System.out.println(line);<br><wbr><wbr><wbr>}<br><wbr><wbr>}<br><wbr><wbr>catch (IOException e)<br><wbr><wbr>{<br><wbr><wbr><wbr>System.out.println(e.toString());<br><wbr><wbr>}<br><wbr><wbr>finally<br><wbr><wbr>{<br><wbr><wbr><wbr>//对两个缓冲区分别进行关闭<br><wbr><wbr><wbr>if (bfdw != null)<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr>try<br><wbr><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr><wbr>bfdw.close();<wbr><wbr><wbr><wbr><br><wbr><wbr><wbr><wbr>}<br><wbr><wbr><wbr><wbr>catch (Exception e)<br><wbr><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr><wbr>System.out.println(e.toString());<br><wbr><wbr><wbr><wbr>}<br><wbr><wbr><wbr>}<br><wbr><wbr><wbr><br><wbr><wbr><wbr>if (bfdr != null)<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr>try<br><wbr><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr><wbr>bfdr.close();<wbr><wbr><wbr><wbr><br><wbr><wbr><wbr><wbr>}<br><wbr><wbr><wbr><wbr>catch (Exception e)<br><wbr><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr><wbr>System.out.println(e.toString());<br><wbr><wbr><wbr><wbr>}<br><wbr><wbr><wbr>}<br><wbr><wbr>}<br><wbr>}<br> }<br></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

分享到:
评论

相关推荐

    buf-gradle-plugin:Buf协议缓冲工具的Gradle插件

    buf-gradle-plugin 与集成。 用法 在项目目录中创建一个Buf配置文件: # buf.yaml version : v1beta1 build : roots : - src/main/proto # The protobuf-gradle-plugin extracts and merges protobuf ...

    pcf8563_i2c1_r8_ruoge_ov2640通过给RTC驱动增加设备节点读取秒钟成功+直接读取I2C1获取秒钟值20160626_2201.7z

    通过/dev/i2c-n节点,用户可以在userspace直接访问板上的i2c外设寄存器,主要是透过I2C_RDWR这个IO控制命令将i2c_msg数组传递给kernel去执行。 开发板的/dev/i2c-1总线下挂有一片I2C的RTC:pcf8563。 root@android...

    io-uring:Rust的io_uring库

    Linux IO催促 Rust的低级用户空间接口。 用法 要使用io-uring板条箱,请首先将其添加到Cargo.toml : [ dependencies ] io-uring = " 0.5 " 接下来,我们可以开始使用io-uring板条箱。 以下是使用“ Read文件”的...

    delphi代码参考

    buf, p: pChar; sver: ^VS_FIXEDFILEINFO ; i: LongWord; ma, mi, r ,b : integer; begin //2010-08-16 11:43 hst //2010-09-01 15:52 hst //2011-06-25 23:16 hst Result:= '3.0'; exit; Result := ''; ...

    C++封装过的JSON转换包,功能齐全

    rapidjson::Writer&lt;rapidjson::StringBuffer&gt; writer(buf); //rapidjson::PrettyWriter&lt;rapidjson::StringBuffer&gt; writer(buf); // it can word wrap writer.StartObject(); writer.Key("dwtype"); writer.String(...

    buffer-io:Easy Buffer读写工具。 https

    @ imed.ch / buffer-io 在github上的。 缓冲区写入和读取实用程序。 BufferIO在旧版添加了以下功能: BufferIO读取器或写入器为您跟踪偏移量。 您可以在实例化缓冲区时指定默认字节序(但仍可以使用其他字节序...

    ucos-cyclonev:用于 Altera Cyclone V 的 ucos bsp

    pin: ctrl0-ctrl15(ink supply) output(buf to 24v) J36-J39 pin: stepper pwm&dir&reset(0,1) output J32-J33 编码器:AB(方向:) V = 脉冲数 / S * l __ A | | __乙| | 0 pin: 编码器([xyz]2[abz]) 脉冲输入 ...

    代码生成器

    BUF, 就是查询某个表中的字段,存放在buffer中,可以在框架代码模板 中 插入 功能代码模板,根据设计描述模糊匹配功能代码,实现代码生成的 半 自动 化。 参数:模板中的参数是需要用实际的字符来替换的,缺省是 $...

    frog-jump-buffer:最快的缓冲区跳转Emacs lisp软件包

    青蛙跳缓冲区 描述 frog-jump-buffer是最快的Emacs Lisp缓冲区跳转软件包。 它是的精神继任者,由通过 。 就像ace-jump-buffer ,它允许您在2-3个按键中跳到任何Emacs缓冲区。 安装 ... 1 :显示(buf

    buf-indexof:Node.js 4`buffer.indexOf()`ponyfill

    buf-indexof Node.js 安装 $ npm install --save buf-indexof用法 var bufIndexof = require ( 'buf-indexof' ) ;bufIndexof ( new Buffer ( 'unicorn' ) , 'corn' ) ;//=&gt; 3原料药请参阅。 唯一的区别是您将缓冲区...

    Java网络编程-Socket-文件传输小案例

    import java.io.RandomAccessFile; import java.io.FileOutputStream; import java.io.File; import java.io.IOException; import java.nio.channels.ClosedChannelException; /** * &lt;p&gt;Title: Socekt编程学习 * ...

    buf-breaking-action

    buf-breaking操作要求在Github Action运行程序中安装buf ,因此我们将使用操作进行安装。 在大多数情况下,您只需要配置以下示例中引用的几个变量。 在这些示例中,我们将在假设的...

    itoa:用于将整数基元打印到io的快速函数

    fn demo_itoa_write () -&gt; io:: Result &lt;()&gt; { // Write to a vector or other io::Write. let mut buf = Vec :: new (); itoa :: write ( & mut buf, 128u64 )?; println! ( "{:?}" , buf); // Write to a ...

    程序功能:带倒计时闹钟

    BUF EQU 30H ;30~33H 连续4字节存放显示器数据 HOUR EQU 34H ;存放小时变量 MIN EQU 35H ;存放分钟变量 SEC EQU 36H ;存放秒钟变量 DEDA EQU 37H ;存放5 ms 计数值 HH EQU 38H ;闹铃设置小时变量 MM EQU 39H...

    程序员为什么还要刷题-kwk-l1-fizzbuzz-kwk-students-l1-buf-072318:kwk-l1-fizzbuzz-k

    程序员常刷题目标 构建利用流量控制的方法 阅读并理解测试输出以开发工作程序 更加熟悉测试驱动开发的概念 关于本指南的说明 我们之前已经了解了测试驱动开发以及阅读和理解 RSpec 测试的概念。...

    import java.net.*;import java.io.*;

    import java.io.*; public class udptest { ///创建一个数据包套接字对象ds,并且指定连接的端口号 ///创建一个数据包对象dp ///指定一个字节数组,用来存储接受的数据 public static void rev() { try { ...

    java IO章节的总结

    IO从大的方向上分为字节流和字符流,包括四个抽象类: 1、输入:Reader, InputStream类型的子类(字符,字节) 2、输出:Writer, OutputStream类型的子类(字符,字节) 决定使用哪个类以及它的构造进程的一般...

    js-adler32:ADLER-32校验和

    adler32 用JS签名的ADLER-32算法实现(适用于浏览器和nodejs)。 强调正确性,性能和IE6 +支持。安装使用 : $ npm install adler-32 在浏览器中: &lt;... ADLER32.buf(byte array or buffer[, seed])

    buffer-hexdump:用于浏览器和节点的缓冲区hexdump工具

    var buf = new Uint8Array ( [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 ] ) ; console . log ( dump ( buf ) ) ; // 00000000: 0102 0304 0506 0708 090a 0b0c 0d0e 0f10 ...

    node-buffer-reader:缓冲区读取器,可轻松从二进制缓冲区读取数据

    // Read next N bytes as buffervar buf = reader . nextBuffer ( 10 ) ;// Read next 2 bytes as Int16LEvar i = reader . nextInt16LE ( ) ;// Read next 8 bytes as DoubleLEvar d = reader . nextDou

Global site tag (gtag.js) - Google Analytics