JAVA基础--IO

IO

什么是IO

任何事物提到分类都必须有一个分类的标准,例如人,按照肤色可分为:黄的,白的,黑的;按照性别可分为:男,女,人妖。IO流的常见分类标准是按照*流动方向**操作数据单位*来分的。

1.流动方法:输入 输出(以程序为基准

2.操作单位:字节(8bit-011b) 字符(ab)

Java中的IO流主要都派生至一下4大抽象流,[抽象流------->抽象类] : 都是java.io包中的,分为如下四种

字节流

InputStream

读文件代码示例

public class InputStreamTest {public static void main(String[] args){System.out.println("请用户输入想要读的文件的文件名");Scanner scanner=new Scanner(System.in);String s=scanner.nextLine();//获取用户输入的内容try {FileInputStream fileInputStream=new FileInputStream("D:\\feiqiu\\Test\\"+s);byte[] bytes=new byte[fileInputStream.available()];int b=0;int i=0;while ((b=fileInputStream.read(bytes))!=-1){
//            bytes[i]=(byte)b;//一个汉字为2~4个字节,此处直接取最
//            i++;
//            String str=new String(bytes);
//            System.out.println(str);
//            System.out.println((char)b);//会有中文乱码System.out.println(new String(bytes,0,b));}}catch (Exception e){e.printStackTrace();}}
}

OutputStream

写文件代码示例

public class OutPutStreamTest {public static void main(String[] args)  {//使用IO流写文件try{FileOutputStream fileOutputStream=new FileOutputStream("D:\\feiqiu\\Test\\test.txt",true);System.out.println("请用户输入要写入文件的内容");Scanner scanner=new Scanner(System.in);String s=scanner.nextLine();//获取用户输入的内容byte[] bytes=s.getBytes("utf-8");fileOutputStream.write(bytes);fileOutputStream.close();}catch (Exception e){e.printStackTrace();}}
}

字符流

FileReader

读文件示例

public class FileReaderTest {public static void main(String[] args) {try {Reader reader=new FileReader("D:\\feiqiu\\Test\\test.txt");int i;char[] c=new char[1024];while ((i=reader.read(c))!=-1){System.out.println(new String(c,0,i));}}catch (IOException e){e.printStackTrace();}}
}

FileWriter

写文件示例

public class FileWriterTest {public static void main(String[] args) {try {FileWriter writer= new FileWriter("D:\\feiqiu\\Test\\123.txt",true);System.out.println("请用户输入要写入的内容");Scanner scanner=new Scanner(System.in);String s=scanner.nextLine();writer.write(s);//直接写入writer.close();//不关闭写不入}catch (Exception e){e.printStackTrace();}}
}

写在最后:IO在JAVA中十分重要,因为都是用流来操作数据,读写文件只是流的一个基本操作。笔者小,中,大厂均有面试经历,每日分享JAVA全栈知识,希望能够和大家共同进步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/11103.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Google与哈佛大学的科学家团队共同创造了一张人脑中一个极小部分的精细地图

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

插件:Best HTTP

一、简介 WebSocket WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。…

【SRC实战】无法支付的修改金额支付漏洞

挖个洞先 https://mp.weixin.qq.com/s/F4f8R4uKN0Q9BnTmjDMleg “ 以下漏洞均为实验靶场,如有雷同,纯属巧合 ” 01 — 漏洞证明 一、企业用户,标准商品 “ 支付订单需要公对公银行卡转账,如何绕过?” 1、点击任意…

java入门-面向对象的三大特性

面向对象三大特性 封装 什么是封装 封装 是将代码及其处理的数据绑定在一起的一种编程机制,该机制保证了程序和数据都不受外部干扰且不被误用。 封装的作用 访问控制符 方法传参-值传递 传参类型是基本类型 程序案例: public static void main(St…

C++笔记(体系结构与内核分析)

1.OOP面向对象编程 vs. GP泛型编程 OOP将data和method放在一起,目的是通过封装、继承、多态提高软件的可维护性和可扩展性GP将data和method分开,可以将任何容器与任何算法结合使用,只要容器满足塞饭所需的迭代器类型 2.算法与仿函数的区别 …

AJAX前端与后端交互技术知识点以及案例

Promise promise对象用于表示一个异步操作的最终完成(或失败)及其结果值 好处: 逻辑更清晰了解axios函数内部运作机制成功和失败状态,可以关联对应处理程序能解决回调函数地狱问题 /*** 目标:使用Promise管理异步任…

Linux-02

Linux常用命令: ls: 列出目录touch: 创建文件 touch test.txt echo:往文件写内容echo "i love linux" >>test.txtcd:切换目录pwd:显示目前的目录mkdir:创建一个新的目录 mkdir dai:创建目录dai mkdir -p test1/t…

基于springboot的物业服务平台的设计与实现

基于springboot的物业服务平台的设计与实现 摘 要:本文针对社区物业服务管理现状,采用B/S系统架构并选择MySQL数据库作为系统的数据存储系统,设计并实现一个以Spring Boot为后端框架、Vue为前端框架的社区物业服务管理平台。与传统的物业服务管理方式相比,该系统取代了传统…

如何查看打包后的jar包启动方法main方法

背景 有时候我们在引用一个jar包的时候,想查看一个jar包的结构,这时候查看启动类就比较重要,因为一些关键配置是在启动类上的,这里教大家如何查看这个启动类(springboot项目) 步骤 首先打开jar包预览结构,可以使用解压缩工具直接双击打开或者预览结构 打开路径 META-INF/MA…

springfox.documentation.spi.DocumentationType没有OAS_30(从swagger2转到swagger3出现的问题)

直接开讲: 查看源码根本没有OAS_30的类型选择 右键package的springfox找到maven下载的包,打开到资源管理器 可以看到项目优先使用2版本的jar包,但是OAS_30只在3版本中才有,意思就是让项目优先使用以下图片中的3.0.0jar包 解决办法…

[AutoSar]BSW_Diagnostic_004 ReadDataByIdentifier(0x22)的配置和实现

目录 关键词平台说明背景一、配置DcmDspDataInfos二、配置DcmDspDatas三、创建DcmDspDidInfos四、创建DcmDspDids五、总览六、创建一个ASWC七、mapping DCM port八、打开davinci developer,创建runnabl九、生成代码 关键词 嵌入式、C语言、autosar、OS、BSW、UDS、…

课堂练习——路由策略

需求:将1.1.1.0/24网段重发布到网络中,不允许出现次优路径,实现全网可达。 在R1上重发布1.1.1.0/24网段,但是需要过滤192.168.12.0/24和192.168.13.0/24在R2和R3上执行双向重发布 因为R1引入的域外路由信息的优先级为150&#xff…

8.微服务项目结合SpringSecurity项目结构

项目结构 acl_parent:创建父工程用来管理依赖版本 common service_base&#xff1a;工具类 spring_security: Spring Security相关配置 infrastructure api_gateway: 网关 service service_acl: 实现权限管理功能代码 acl_parent的pom.xml <?xml version"1.0" …

STM32 | STC-USB驱动安装Windows 10(64 位)

Windows 10&#xff08;64 位&#xff09;安装方法 由于 Windows10 64 位操作系统在默认状态下&#xff0c;对于没有数字签名的驱动程序是不能安装成功的。所以在安装 STC-USB 驱动前&#xff0c;需要按照如下步骤&#xff0c;暂时跳过数字签名&#xff0c;即可顺利安装成功。…

镜像制作过程

镜像制作过程 Centos镜像制作 虚拟机系统安装将网卡转换为eth0在install安装时按tab健加入一下配置 net.ifnames=0 biosdevname=0

XYCTF - web

目录 warm up ezMake ezhttp ezmd5 牢牢记住&#xff0c;逝者为大 ezPOP 我是一个复读机 ezSerialize 第一关 第二关 第三关 第一种方法&#xff1a; 第二种方法&#xff1a; ez?Make 方法一&#xff1a;利用反弹shell 方法二&#xff1a;通过进制编码绕过 ε…

使用迭代器进行遍历时不能进行元素的任何修改

记录一下 使用迭代器进行遍历时不能进行元素的任何修改 ArrayList<String> list new ArrayList<>();list.add("一");list.add("二");list.add("光");list.add("华"); // 遍历器Iterator<String> iterator …

【C++】用C++实现一个日期计算器

欢迎来到CILMY23的博客 本篇主题为&#xff1a; 用C实现一个日期计算器 个人主页&#xff1a;CILMY23-CSDN博客 系列专栏&#xff1a;Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux 感谢观看&#xff0c;支持的可以给个一键三连&#xff0c;点赞关注收藏。 写在…

【数据结构】环状链表OJ题

✨✨✨专栏&#xff1a;数据结构 &#x1f9d1;‍&#x1f393;个人主页&#xff1a;SWsunlight 一、OJ 环形链表&#xff1a; 快慢指针即可解决问题: 2情况&#xff1a; 快指针走到结尾&#xff08;不是环&#xff09;快指针和尾指针相遇&#xff08;是环的&#xff09; …

(CVE-2012-1823)PHP-CGI远程代码执行漏洞(80端口)

&#xff08;CVE-2012-1823&#xff09;PHP-CGI远程代码执行漏洞&#xff08;80端口&#xff09; 一、介绍二、漏洞影响三、原理四、漏洞复现 一、介绍 php-cgi是一个类似于消息的“传递者”&#xff0c;它接收web容器收到的http数据包&#xff0c;并把里面的数据交给PHP解释器…