当前位置: 首页 > news >正文

第七章 输入和输出处理 (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->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)}}}
}

相关文章:

  • CPLD 工程师面试题
  • qt中QTatlewidget类的作用及详细使用方法
  • 即插即用篇 | YOLOv8 引入单头视觉Transformer模块 | CVPR 2024
  • Spring Boot入门指南
  • 鸿蒙OS开发之动画相关示例分享, 关于弹出倒计时动画的实战案例源码分享
  • AI大模型教程 Prompt提示词工程 AI原生应用开发零基础入门到实战【2024超细超全,建议收藏】
  • Maven重点学习笔记(包入门 2万字)
  • 搜索引擎onesearch3实现解释和升级到Elasticsearch v8系列(二)-索引
  • 软考中级网络工程师选择题
  • 华为OD机试真题------分糖果
  • Docker配置代理解决pull超时问题
  • 大数据-146 Apache Kudu 安装运行 Dockerfile 模拟集群 启动测试
  • PSS-sdy_opengl_sdd
  • 【机器学习(九)】分类和回归任务-多层感知机(Multilayer Perceptron,MLP)算法-Sentosa_DSML社区版
  • 低代码革命:加速云原生时代的端到端产品创新
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • Create React App 使用
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • javascript从右向左截取指定位数字符的3种方法
  • Mybatis初体验
  • ViewService——一种保证客户端与服务端同步的方法
  • 程序员最讨厌的9句话,你可有补充?
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 开源SQL-on-Hadoop系统一览
  • 前端设计模式
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 使用 QuickBI 搭建酷炫可视化分析
  • 王永庆:技术创新改变教育未来
  • 我的zsh配置, 2019最新方案
  • 一个JAVA程序员成长之路分享
  • 在electron中实现跨域请求,无需更改服务器端设置
  • #define,static,const,三种常量的区别
  • #NOIP 2014# day.2 T2 寻找道路
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (第三期)书生大模型实战营——InternVL(冷笑话大师)部署微调实践
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (接口自动化)Python3操作MySQL数据库
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (三)uboot源码分析
  • (十五)、把自己的镜像推送到 DockerHub
  • (四)库存超卖案例实战——优化redis分布式锁
  • (四十一)大数据实战——spark的yarn模式生产环境部署
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)Oracle存储过程编写经验和优化措施