第七章 输入和输出处理 (IO流)
字符流:char
Reader->InputStreamReader(字节流InputStream,编码)->FileReader(路径 | | FIle对象)
乱码问题:reader = new InputStreamReader(new FileInputStream("路径"),"GBK");
import java.io.*;
public class InputReaderTest {
public static void main(stringl] args){
//Reader->InputStreamReader->FileReader
Reader reader = null;//字符流
try {
reader
= new InputstreamReader(new FileInputstream("D:\\4072\\1\\1.txt"),"GBK");
char c[]= new char[100];
reader .read(c):
//将数组转换为字符串
String msg = new string(c):
System.out.println(msg);
}catch(Exception e){
e.printstackTrace(;
}finally {
try {
reader.close();
}catch(IoException e){
e.printstackTrace();
}
}
}
}
缓冲区: BufferedReader(字符流Reader)
import java.io.*;
public class BufferedReaderTest {
public static void main(string[] args){
//Reader->InputStreamReader->FileReader
Reader reader = null;//字符流
BufferedReader br = null;
try {
reader = new FileReader("D:l4072\\1\\1.txt");
br = new BufferedReader(reader):
String msg = nu1l;
while((msg =br.readLine()!=nu11){
System.out.printin(msg);
}catch(Exception e){
e.printstackTrace();
}finally {
try {
br.close;
reader.close();
}catch(IoExceptione){
e.printstackTrace();
}
}
}
}
输出流 (写入)
Writer->OutputStreamWriter(字节流OutputStream,编码)->FileWriter(路径 || File对象,是否追加)
write(字符串) 写入方法
close() 释放资源
flush() 刷新缓冲区
import java.io.Filewriter ;
import java.io.IOException;
import java.io.Writer :
public class Outputwriter {
public static void main(string[] args){
//writer->0utputstreamwriter(字节流0utputstream,编码)->Filewriter(路径|File对象,是否
追加)
Writer writer = null;
try {
writer = new Filewriter("D:l14072\\1\\1.txt"
,true);
//写入
writer.write("\n123");
System.out.printn("写入成功!!!!");
}catch(Exception e){
e.printstackTrace0;
}finally {
try {
writer.closeO://释放资源
}catch(IoExceptione){
e.printstackTrace();
}
}
}
}
缓冲区:BufferedWriter(Writer字符流)
import java.io.Bufferedwriter;
import java.io.Filewriter;
import java.io.IOException;
import java.io.writer;
public class BufferedwriterTest {
public static void main(string[] args){
//writer->Outputstreamwriter(字节流Outputstream,编码)->Filewriter(路径||Fi1e对象,是否
追加)
Writer writer = null;
Bufferedwriter bw =null;
try {
writer = new Filewriter("D:l4072\1\1.txt"
,true);
//创建缓冲区
bw = new Bufferedwriter(writer);
//写入信息到缓冲区
bw.write("数据结构");
bw.newLine();//换行
bw.write("软件名词解释");
bw.newLine();//换行
bw.write("Linux虚拟机安装vmware");
//将缓冲区数据刷新到字符流中
bw.flush();
System.out.printin("写入成功!!!!");
}catch(Exception e){
e.printstackTrace();
}finally {
try {
bw.close();
writer.close();//释放资源
}catch(IoException e){
e.printstackTrace();
}
}
}
}
二进制读写
读取:InputStream->FileInputStream->DataInputStream(InputStream)
写入: OutputStream->FileOutputStream->DataInputStream(OutputStream)
import java.io.*;
public class DatastreamTest{
public static void main(string[] args){
//InputStream->FileInputStream->DataInputStream(Inputstream)
//0utputStream->File0utputStream->Data0utputStream(OutputStream)
DataInputstream dis =null;
DataOutputStream dos =nu:
try {
dis = new DataInputstream(
new FileInputstream("D:istar.jpg"));
dos = new DataOutputStream(
new Fileoutputstream("D:\\4072\\1.jpg")
”
int b = -1;
while((b=dis.read())!=-1){
dos.write(b);
System.out.printin("复制成功!!!"):
}catch(Exception e){
e.printstackTrace0;
} finally {
try {
dos.close0;
dis.close();
}catch(IoExceptione){
throw new RuntimeException(e);
}
}
}
}
序列化(ObjectOutputStream)与反序列化(ObjectInputStream)
序列化:将内存对象存储到硬盘
OutputStream->ObjectOutputStream(OutputStream)
OutputStream->FileOutputStream
反序列化:将硬盘中存储的对象转换为内存对象
InputStream->ObjectInputStream(InputStream)
InputStream->FileInputStream
import java.io.*;
public class objectTest {
public static void main(string[] args){
//outputstream->objectoutputstream(outputstream)
//outputStream->File0utputstream
ObjectoutputStream oos =nu1l;
//Inputstream->objectInputstream(Inputstream)
//Inputstream->FileInputstream
ObjectInputstream ois = nu1l;
try {
//序列化
oos = new objectoutputstream(
new Fileoutputstream("D:14072\\1\\1.txt"));
Student student = new student("张三",17);
oos.writeobject(student);//写入对象
System.out.printin("写入成功!!!");
//反序列化
ois = new objectInputstream(new FileInputstream("D:\\4072\\1\\1.txt"));
Student stu=(student)ois.readobject();
System.out.printin(stu.tostring());
}catch(Exception e){
throw new RuntimeException(e);
} finally {
try {
oos.closeO;//释放资源
}catch(IoException e){
throw new RuntimeException(e)
}
}
}
}
原文地址:https://blog.csdn.net/weixin_44348113/article/details/142556366
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!