Java学习之I/O中的其他功能流
来源:互联网 发布:中兴毛网络e灯正常亮吗 编辑:程序博客网 时间:2024/06/07 18:23
一、LineNumberReader:跟踪行号的缓冲字符输入流
public int getLineNumber():获取行号
public void setLineNumber(int lineNumber):设置起始行号
String readLine():读取一行
package com.edu.linenumerreader;import java.io.FileReader;import java.io.IOException;import java.io.LineNumberReader;public class Demo {public static void main(String[] args) throws IOException {//创建对象LineNumberReader(Reader in) //LineNumberReader lnr = new LineNumberReader(new FileReader("test.txt"));//创建对象并设置缓冲区大小LineNumberReader(Reader in, int sz) LineNumberReader lnr = new LineNumberReader(new FileReader("test.txt"),1024);//public void setLineNumber(int lineNumber):设置起始行号lnr.setLineNumber(20);//遍历String line;while ((line=lnr.readLine())!=null) {//读物每行数据System.out.println(lnr.getLineNumber()+":"+line);//输出行号和数据}//关闭流lnr.close();}}
21:#Tue May 09 16:45:21 CST 201722:zhangsan=2023:lisi=10024:wangwu=80二、操作基本数据类型的流
可以操作基本类型的流对象。
DataInputStream:读数据
DataOutputStream:写数据
注意: 读写顺序必须一致,否则数据有问题。
package com.edu.data;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class DataInputStreamDemo {public static void main(String[] args) throws IOException {//写数据DataOutputStream dos = new DataOutputStream(new FileOutputStream("fos.txt"));dos.write('h');dos.writeInt(20);dos.writeFloat(3.34f);dos.writeChar('f');//读数据DataInputStream dis = new DataInputStream(new FileInputStream("fos.txt"));System.out.println(dis.read());System.out.println(dis.readInt());System.out.println(dis.readFloat());System.out.println(dis.readChar());dos.close();dis.close();}}三、内存操作流:解决临时数据存储的问题。
操作字节数组
ByteArrayInputStream
ByteArrayOutputStream
byte[] toByteArray() 将之前写入内存的流转换成字节数组
操作字符数组
CharArrayReader
CharArrayWrite
操作字符串
StringReader
StringWriter
package com.edu_01;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;public class ByteArrayInputStreamDemo {public static void main(String[] args) throws IOException {//创建给内存写数据的对象ByteArrayOutputStream byos = new ByteArrayOutputStream();//写数据:write(byte[] b, int off, int len) byos.write("hello".getBytes());//将数据转换成字节数组byte[] bys = byos.toByteArray();//创建从内存中读数据的对象:ByteArrayInputStream(byte[] buf) //由于写入数据的时候构造方法需要的参数是字节数组。所以要是用toByteArray()进行转换ByteArrayInputStream bais = new ByteArrayInputStream(bys);//读数据int i;while ((i=bais.read())!=-1) {System.out.println((char)i);}byos.close();bais.close();}}四、打印流
1、分类字节打印流:PrintStream字符打印流:PrintWriter2、特点(1)只能操作目的地,不能操作数据源(2)可以操作任意类型的数据(3)如果启动了自动刷新,能够自动刷新(4)可以操作文件的流直接操作文件的流指的是其构造方法同时又File和String类型的参数3、如何实现自动刷新(1)使用用自动刷新的构造方法PrintWriter(OutputStream out, boolean autoFlush)
PrintWriter(Writer out, boolean autoFlush)
(2)当启用类自动刷新的构造方法后,只有在调用println()printf(),format()这些方法的时候才能实现自动刷新,其中使用println方法不仅可以实现自动刷新,还可以实现自动换行
package com.edu.printwriter;import java.io.BufferedReader;import java.io.FileOutputStream;import java.io.FileReader;import java.io.IOException;import java.io.PrintWriter;public class CopyDemo {public static void main(String[] args) throws IOException {//创建目的地和数据源BufferedReader br = new BufferedReader(new FileReader("CopyDemo.java"));//使用能够实现自动刷新的构造方法PrintWriter pw = new PrintWriter(new FileWriter("Copy.java"), true);PrintWriter pw = new PrintWriter(new FileOutputStream("Copy.java"), true);//调用方法读取并复制数据String line;while ((line=br.readLine())!=null) {pw.println(line);//调用println方法实现自动刷新}//关流br.close();pw.close();}}
阅读全文
0 0
- Java学习之I/O中的其他功能流
- Java学习之I/O流中的其他功能流2
- Java-I/O操作之字符流、其他常用流
- java学习之I/O流
- Java中的I/O流及利用I/O流实现文件复制功能
- java学习之i/o
- I/O其他流
- java基础7:I/O包中的其他类
- Java中的I/O流
- java中的I/O流
- Java中的I/O流
- Java中的I/O流
- Java中的I/O流
- javaee学习日记之java基础之I/O流
- JAVA I/O流 学习
- JAVA I/O流 学习
- JAVA I/O流学习
- Java之I/O流
- 负载均衡
- OSIntCtxSw()
- tf.trainable_variables和tf.all_variables的对比
- Dubbo标签参数详解
- gulp输出的css,js,html格式
- Java学习之I/O中的其他功能流
- PyTorch学习系列(一)——加载数据并生成batch数据
- hdf5文件的创建以及读写
- Certified Scrum Master (CSM)认证考试部分题目分析。
- JSON学习笔记(二)- 对象
- 文档生成字典
- Educational Codeforces Round 21E
- hdu 1013 Digital Roots
- openGL ES进阶教程(一)之粒子光束