您的位置:首页 > 编程语言 > Java开发

java学习--IO(2)

2015-11-11 21:06 381 查看
继续IO流:

一、转换流(在字节流和字符流间转换)

1 InputStreamReader :用于将字节流中读取到的字节按指定字符集解码成字符

2.OutputStreamWriter:用于将写入到字节流中的字节按指定字符集解码成字节

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ByteToCharTest {
public static void main(String[] args) {
System.out.println("请输入信息(退出输入e或exit):");
//把"标准"输入流(键盘输入)这个字节流包装成字符流,再包装成缓冲流
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
String s = null;
try {
while ((s = br.readLine()) != null) {  //读取用户输入的一行数据 --> 阻塞程序
if (s.equalsIgnoreCase("e")
|| s.equalsIgnoreCase("exit")) {
System.out.println("安全退出!!");
break;              }
//将读取到的整行字符串转成大写输出
System.out.println("-->:"+s.toUpperCase());
System.out.println("继续输入信息");           }
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (null != br) {
br.close();  //关闭过滤流时,会自动关闭它包装的底层节点流
}
} catch (IOException e) {
e.printStackTrace();        }   }
}}


二、数据流可操作基本数据类型的数据,分为

1.DataInputSTream

2.DataOutputStream

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:可将基本数据类型的数据转化成字符串输出。

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(); }
}


四、对象流

ObjectInputStream 和ObjectOutputStream :用于存取和读取基本类型数据或对象的过滤流,可把java中的对象写到数据源中,也能把对象从数据源中还原回来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: