LineNumberReader:
public int getLineNumber():获取行号
public void setLineNumber(int lineNumber):设置起始行号
String readLine():读取一行
package com.edu_01;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
public class LineNumberReaderDemo {
public static void main(String[] args) throws IOException {
//创建LineNumberReader对象
//public LineNumberReader(Reader in)
LineNumberReader lnr = new LineNumberReader(new FileReader("a.txt"));
//默认起始行号从0开始
//设置其实行号为从10开始
lnr.setLineNumber(10);
//一次读取一行
String line;
while ((line = lnr.readLine())!=null) {
//打印每一行的行号和内容
System.out.println(lnr.getLineNumber()+":"+line);
}
//关流
lnr.close();
}
}
2.操作基本数据类型的流
可以操作基本类型的流对象。
DataInputStream:读数据
DataOutputStream:写数据
注意:
读写顺序必须一致,否则数据有问题。
package com.edu_02;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class DataOutputStreamDemo {
public static void main(String[] args) throws IOException {
//写数据
//write();
read();
}
private static void read() throws IOException {
//DataInputStream:读数据
//创建对象:public DataInputStream(InputStream in)
DataInputStream dis = new DataInputStream(new FileInputStream("dos.txt"));
//读数据了,按什么顺序写入就必须按照什么顺序读出来
System.out.println(dis.readByte());
System.out.println(dis.readShort());
System.out.println(dis.readInt());
System.out.println(dis.readLong());
System.out.println(dis.readChar());
System.out.println(dis.readFloat());
System.out.println(dis.readDouble());
System.out.println(dis.readBoolean());
//关流
dis.close();
}
private static void write() throws IOException {
//public DataOutputStream(OutputStream out)
DataOutputStream dos = new DataOutputStream(new FileOutputStream("dos.txt"));
//给流关联的文件中写入基本类型的数据
dos.writeByte(20);
dos.writeShort(200);
dos.writeInt(2000);
dos.writeLong(20000L);
dos.writeChar(97);
dos.writeFloat(12.34F);
dos.writeDouble(23.34);
dos.writeBoolean(true);
//关流
dos.close();
}
}
package com.edu_02;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class DataOutputStreamDemo {
public static void main(String[] args) throws IOException {
//写数据
//write();
read();
}
private static void read() throws IOException {
//DataInputStream:读数据
//创建对象:public DataInputStream(InputStream in)
DataInputStream dis = new DataInputStream(new FileInputStream("dos.txt"));
//读数据了,按什么顺序写入就必须按照什么顺序读出来
System.out.println(dis.readByte());
System.out.println(dis.readShort());
System.out.println(dis.readInt());
System.out.println(dis.readLong());
System.out.println(dis.readChar());
System.out.println(dis.readFloat());
System.out.println(dis.readDouble());
System.out.println(dis.readBoolean());
//关流
dis.close();
}
private static void write() throws IOException {
//public DataOutputStream(OutputStream out)
DataOutputStream dos = new DataOutputStream(new FileOutputStream("dos.txt"));
//给流关联的文件中写入基本类型的数据
dos.writeByte(20);
dos.writeShort(200);
dos.writeInt(2000);
dos.writeLong(20000L);
dos.writeChar(97);
dos.writeFloat(12.34F);
dos.writeDouble(23.34);
dos.writeBoolean(true);
//关流
dos.close();
}
}