------- <a target="blank">android培训</a>、<a target="blank">java培训</a>、期待与您交流! ----
关于IO接口原理的第四贴 生命不息,折腾不止!向上吧,骚年!!!
第一节、数据流
有时为了更加方便地操作java语言的基础数据类型的数据,可以使用数据流。数据流主要有两个类:dataInputStream和dataOutputStream。分别用来读取和写出
基本数据类型的数据。
DataInputStream类中提供的数据基本类型数据的方法包括如下。
public final boolean readBoolean():从输入流中读取一个布尔型的值
public final byte readByte():从输入流中读取一个8位的字节
public final float readFloat():读取一个32位的单精度浮点数。
public final char readChar():读取一个16位的Unicode字符。
public final double readDouble():读取一个64位的双精度浮点数。
public final float readFloat():读取一个32位的单精度浮点数。
public final short readShort():读取一个16位的短整数。
public final int readInt():读取一个32位的整数。
public final long readLong():读取一个64位的长整数。
public final void readFully(byte[] b):从当前数据输入流中读取b.length个字节到改组。
public final String readdUTF():读取一个由UTF格式字符组成的字符串。
public intskipBypes(int n):跳过n个字节。
下面给出一个往指定文件中写入java基本类型数据的代码。
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/** 数据流使用示例 */
public class DataOutputStreamTest {
public static void main(String[] args) {
DataOutputStream dos = null;
try {
//创建连接到指定文件的数据输出流对象
dos = new DataOutputStream(new FileOutputStream(
"d:\\IOTest\\destData.dat"));
dos.writeUTF("ab中国"); //写UTF字符串
dos.writeBoolean(false); //写入布尔值
dos.writeLong(1234567890L); //写入长整数
System.out.println("写文件成功!");
} catch (IOException e) {
e.printStackTrace();
} finally {
//关闭流对象
try {
if (null != dos) {
dos.close(); // 关闭过滤流时,会自动关闭它包装的底层节点流
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
第二节、打印流PrintStream和PrintWriter
PrintStream和PrintWriter都属于打印流,提供了一系列的print和println方法,可以实现将基本数据类型的数据格式转化成字符串输出。
PrintStream和PrintWriter的输出操作可能不会跑出IOException异常。大家熟知的“System.out.println”语句中,System.out就是打印流的
一个实例。
下面给出打印流的使用实例:
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
/** 把标准的输出改成指定的文件输出 */
public class PrintStreamTest {
public static void main(String[] args) {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(new File("D:\\IOTest\\text.txt"));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
//创建打印输出流,设置为自动刷新模式(写入换行符或字节 '\n' 时都会刷新输出缓冲区)
PrintStream ps = new PrintStream(fos,true);
if (ps != null) {
// 把标准输出流(控制台输出)改成文件
System.setOut(ps);
}
for (int i = 0; i <= 255; i++) { //输出ASCII字符
System.out.print((char)i);
if (i % 50 == 0) { //每50个数据一行
System.out.println(); // 换行
}
}
ps.close();
}
}
------- <a target="blank">android培训</a>、<a target="blank">java培训</a>、期待与您交流! --------
|