第七章 输入和输出处理 (IO流)

server/2024/10/4 20:30:22/

字符流: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->FileReaderReader 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->FileReaderReader 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->File0utputstreamObjectoutputStream oos =nu1l;//Inputstream->objectInputstream(Inputstream)//Inputstream->FileInputstreamObjectInputstream 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)}}}
}

http://www.ppmy.cn/server/122844.html

相关文章

JAVA零基础入门——高级教程之集合框架

目录 1. 关于集合框架 1.1 集合接口 1.2 集合实现类 1.3 集合算法及迭代器和比较器的使用 2. 数据结构 2.1 ArrayList 2.2 LinkedList 2.3 HashMap 2.4 HashSet 3. 迭代器 1. 关于集合框架 集合框架是使用数据结构(参见本文2. 数据结构)来满…

【C++】红黑树的封装——同时实现map和set

目录 红黑树的完善默认成员函数迭代器的增加 红黑树的封装红黑树模板参数的控制仿函数解决取K问题对Key的非法操作 insert的调整map的[]运算符重载 在list模拟实现一文中,介绍了如何使用同一份代码封装出list的普通迭代器和const迭代器。今天学习STL中两个关联式容器…

[Linux]:信号(上)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:Linux学习 贝蒂的主页:Betty’s blog 1. 信号的引入 1.1 信号的概念 在Linux系统中,信号(…

【xhs截流软件】爬取小红书关键词笔记下的筛选评论

用python开发的xhs采集工具【爬小红书搜索评论软件】,可用于引流截流等。 支持2种模式的评论采集: 根据关键词采集评论,爬取思路:笔记关键词->笔记链接->评论根据笔记链接采集评论,爬取思路:笔记链接…

Could not find com.mapbox.mapboxsdk:mapbox-android-accounts:0.7.0.解决

AndroidStudio编译APK出现如下错误: Could not find com.mapbox.mapboxsdk:mapbox-android-accounts:0.7.0. 出现上面错误原因是因为没有打开对应的仓库导致的, 手动添加如下创建地址可解决: maven { url https://maven.aliyun.com/repos…

【python】while 循环的基础案例

目录: while 循环的基础语法while 循环的基础案例while 循环的嵌套应用while 循环的嵌套案例for 循环的基础语法for 循环的嵌套应用循环中断:break 和 continue综合案例 学习目标: 能够使用 while 循环,完成猜数字案例 猜数字…

Spring Boot用Spring Security + JWT + MySQL实现基于Token的身份认证

在现代Web应用中,安全是一个至关重要的议题。随着微服务架构和分布式系统的普及,传统的会话管理方式已经无法满足需求。JSON Web Tokens(JWT)作为一种无状态的、基于Token的认证机制,提供了一种安全、高效且易于扩展的…

第九节 Opencv自带颜色表操作

知识点:Look Up lTable(LUT)查找表 了解LUT查找表的作用与用法,代码实现与API介绍 -applyColorMap(src,dst,COLORMAP) -src表示输入图像 -dst表示输出图像 匹配到的颜色LUT,Opencv支持13种…