【从C++到Java一周速成】章节12:I/O流

Java考试复习 java考试复习 1) 判断题、单选题、填空题看网上测试; 注意!!!(单选题答案里面的粗黑的有分号是代表同时满足;填空题答案里面的粗黑的有分号是代表其中一个就满足) 第1章 (做错的题目) 判断题 java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。(×) 解释: PPT解释(Java有一个系统级的线程,对内存的使用进行跟踪,该线程可以在系统空闲时对不用的内存进行回收,使程序员从繁忙的内存管理中解放出来。) JAVA虽然有垃圾回收机制,但是不能在指定的时间释放内存对象,只能在程序运 阅读详情

【1】File类的作用

File类对象可封装要操作的文件,可通过File类的对象对文件进行操作,如查看文件的大小、判断文件是否隐藏、判断文件是否可读等。

局限:File类的相关操作,并不涉及文件内容相关的操作,这是单独依靠File类对象无法实现的操作,此时需要借助I/O流完成。

【2】I/O流

1.I/O流的作用

在这里插入图片描述

2.I/O流的分类

相当于水管/吸管有不同的类型,I/O流也有分类

  • 按照方向划分:输入流、输出流
  • 按照处理单元划分:字节流、字符流
  • 按照功能划分:节点流、处理流
    在这里插入图片描述

3.I/O流举例

1)字符输出流FileWriter

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class test {
    public static void main(String[] args) throws IOException {
        //创建文件对象(如果不存在对应的文件,则会自动创建)
        File f=new File("test.txt");
        //创建字符输出流对象
        FileWriter fw=new FileWriter(f);
        //从程序输出到文件
        String str="hello";
        fw.write(str);
        //流关闭操作
        fw.close();
    }
}

可以看到,项目文件夹下创建了对应的文件并写入了对应的字符串
在这里插入图片描述

2)字符输入流FileReader

import java.io.File;
import java.io.IOException;
import java.io.FileReader;
public class test {
    public static void main(String[] args) throws IOException {
        //对文件进行操作,先将文件封装为具体的File类的对象
        File f= new File("test.txt");//相对路径,在该工程即JavaStudy文件夹中
        //创建一个字符输入流对象
        FileReader fr=new FileReader(f);
        //使用字符输入流,单词读入一个字符,返回该字符对应的ascii码
        int n1=fr.read();
        while(n1!=-1) {
            System.out.println((char) n1);//将ascii码显式转化为对应字符
            n1=fr.read();
        }
        //流关闭操作
        fr.close();
    }
}

read方法每次读入一个字符
在这里插入图片描述

C++速成指南:从零到实战的现代C++核心学习路径 C++作为一门支持面向对象、泛型编程和底层内存操作的系统级编程语言,其核心价值在于提供对硬件资源的精细控制和高性能计算能力。理解其内存管理机制、RAII(资源获取即初始化)原则以及标准模板库(STL)的运用,是掌握现代C++开发的关键。这些技术特性使得C++在高性能服务器、游戏引擎、嵌入式系统等场景中具有不可替代的优势。本文聚焦于C++ Crash Course的设计理念,通过项目驱动的学习路径,帮助开发者快速攻克指针、智能指针、STL容器等核心概念,并构建从环境配置到实战项目的完整技能栈。 阅读详情

相关推荐

Effective Modern C++ 条款40:对于并发使用std::atomic,对于特殊内存使用volatile

但是它们通常做出一些没有数据竞争的程序中才有效的优化,这些优化在存在数据竞争的程序中会造成异常和不可预测的行为。但是在编译器拿到看起来合理的代码,执行了模板实例化,内联和一系列重排序优化之后,结果会出现冗余访问和无用存储,所以编译器需要摆脱这样的情况并不少见。)这意味对我们的代码,对象被构建,在其上的操作表现得像操作是在互斥锁保护的关键区内,但是通常这些操作是使用特定的机器指令实现,这比锁的实现更高效。那些不那么相同,但是如果我们暂时忽略它,只关注编译器执行的操作,则概念上可以说,编译器看到这个,

cf18862344377的博客 1146

(基础篇 走进javaNIO)第一章-java的i/o演进之路

Java 是由SUN公司在 1995 年首先发布 的编程语 言和计算平 台。这基础技术 支持最新 的程序 ,包括 实用程序 、游 戏和业 务应用程序 。J ava 在世界各地 的 8.5 亿 多 台个 人计算机和数 十亿 套设备上运行着 ,其l扫 包括移动设备和 电视设备 。 Java 之所 以能够得到如此广泛 的应用 ,除 了摆脱硬件平 台的依赖具有 “ 一次编写 、到 处...

dengkuituo0680的博客 274

IT面试必备:Java、C、C++编程语言面试题精解

尽管Java标准库提供了大量的异常类,但有时候我们需要定义自己的异常类来更好地描述特定的错误情况。自定义异常类通常是继承自Exception类或其子类,并在构造函数中调用父类构造函数来传递错误信息。try {throw new MyCustomException("发生了一个自定义异常!");System.out.println("捕获到了一个自定义异常:" + e.getMessage());通过自定义异常,我们可以提供更具体的错误信息,这对于错误的调试和处理非常有帮助。

weixin_29496633的博客 897

【吉林大学Java程序设计】第8章:IO流

IO流

云沧同学的博客 536

C++实现阻塞式客户端/服务器通信

本文还有配套的精品资源,点击获取 简介:C/S架构是IT领域常见的分布式应用模式,其中阻塞式I/O在C++网络编程中扮演着基础角色。本教程详细介绍了如何通过C++实现阻塞式C/S通信,包括服务器端和客户端的具体实现步骤,以及监听、绑定、接收连接请求和数据传输的相关操作。同时,解释了阻塞式I/O的概念,以及如何通过套接字API创建网络连接,以及在实际编程中遵守开源软件许可证的...

weixin_31720909的博客 802

基于C++的高效静态资源HTTP服务器cpp-LEAR实战解析

cpp-LEAR是一个基于C++语言开发的轻量级、高性能静态HTTP服务器,专为以惊人效率提供静态资源而设计。该项目通过极简架构和底层系统调用优化,在低资源消耗的前提下实现了高并发处理能力,适用于嵌入式环境、开发测试服务器以及小型Web服务部署场景。其核心优势体现在极致的性能表现、清晰的代码结构和对现代操作系统I/O机制的深度利用。// 示例:精简的主函数入口,体现项目简洁性return 0;

weixin_36364707的博客 503

一文带你了解 Google I/O 2022 精彩汇总与个人感想

谷歌 2022 I/O 大会刚刚过去,这两天我也整理了不少篇文章和资讯,如果刚兴趣的可以在文末查看相关内容。 作为时隔 3 年再次回归海岸线圆形剧场,谷歌这次 I/O 大会可以说是干活满满,特别是本次大会的“线上会场”,Adventure 用类似“元宇宙”的概念,让广大开发者可以在“游戏”中逛遍所“展厅”,同时通过完成各种有趣的小游戏来参与大会,甚至你还可以钓鱼挂机…当然,最重要的是可以和全球各个开发者线上交流,这无疑是本次大会最优秀的一环。 AI 作为本次 I/O 大会的关键词之一,AI 成为谷歌.

恋猫de小郭的博客 5968

中兴公司Java与C++编程笔试题全面解析

在Java中,类是创建对象的模板,它定义了对象共有的属性和方法。类的定义使用关键字class,而对象的创建则通过new关键字后跟类名来完成。例如,以下代码展示了如何定义一个Person类,并创建其对象:int age;接口在Java中是一种特殊的类,它包含了多个抽象方法的定义,但不提供方法的实现。接口的定义使用interface关键字。一个类通过implements关键字实现接口,必须提供接口中所有方法的具体实现。接口的特性包括其只能包含公共方法和常量的定义。

weixin_35753291的博客 1107

clog对象跟c语言标准设备对应,C++ 输入输出(cout、cin、cerr、clog)

1、输入输出C++ 的 I/O 发生在流中,流是字节序列。如果字节流是从设备(如键盘、磁盘驱动器、网络连接等)流向内存,是输入操作。如果字节流是从内存流向设备(如显示屏、打印机、磁盘驱动器、网络连接等),是输出操作。2、C++ I/O 库头文件对系统指定的标准设备的输入和输出。即从键盘输入数据,输出到显示器屏幕。这种输入输出称为标准的输入输出,简称标准I/O。以外存磁盘文件为对象进行输入和输出,即...

weixin_35859336的博客 714

RSA加密算法实践:C++与Java代码实现

RSA算法是一种非对称加密算法,由Rivest、Shamir和Adleman在1977年提出。它依赖于大数分解的困难性,使用一对密钥——公钥和私钥,其中公钥负责加密,私钥负责解密。非对称加密的安全性基于这样的事实:虽然公钥可以公开分享,但私钥则不能从公钥推导出来。

weixin_30021053的博客 991

深入Java编程:实战演练与案例分析

自1995年由Sun Microsystems公司推出以来,Java凭借其跨平台特性和面向对象的优秀设计迅速成为最受欢迎的编程语言之一。它的首次亮相是为了让家用电器的小型设备也能运行复杂的程序。时至今日,Java已成为企业级应用开发、移动应用(尤其是Android平台)、大型系统开发的首选语言。

weixin_30923011的博客 910

Java期末考试大纲

目录:Java期末考试大纲一、题型二、重点第1章 初次接触Java第2章 Java语言基础第4章 面向对象(上) 一、题型 选择 判断 编程(30分) 问答/理解题(30-40分) 程序填空题 二、重点 第1章 初次接触Java JDK和JRE的关系。 弄懂 JRE、JDK、JVM 之间的区别与联系 第2章 Java语言基础 数据类型{Primitive type ...

Chilan_Yuk的博客 2237

TYjavaPrograming:全面探索Java编程技术

本文还有配套的精品资源,点击获取 简介:“TYjavaPrograming”可能是一个Java编程项目或教程,涉及Java语言的基础和高级特性。Java是面向对象的编程语言,以跨平台兼容性著称。学习内容包括基础概念(变量、数据类型、控制结构、方法、类和对象)、异常处理、集合框架(包括泛型)、多线程编程、I/O流处理、网络编程及现代Java特性(如Lambda表达式、模块系统...

weixin_35006125的博客 1255

探索Java高级特性的宝典:《Core Java 第12版卷二》资源推荐

探索Java高级特性的宝典:《Core Java 第12版卷二》资源推荐 【下载地址】CoreJava第12版卷二高级特性资源下载 Core Java 第12版卷二:高级特性资源下载 项目地址: https://gitcode.c...

gitblog_06685的博客 951

Java基础完全版思维导图

htmltable {th, td {th {pre {简介:Java基础思维导图为Java初学者提供了一个从基础到进阶的全面学习路径,涵盖了Java的核心概念、语法基础、面向对象原理、数组与集合、字符串操作、异常处理以及输入/输出流。这份指南通过系统的讲解和实践任务帮助初学者掌握Java编程语言,并构建起坚实的编程思维。

weixin_29092787的博客 870

JAVA程序员面试必答基础题库

Java是一种高级、面向对象、跨平台的编程语言,它以”一次编写,到处运行”的口号闻名于世。Java的设计重点是让程序能够”编写一次,到处运行”(Write Once, Run Anywhere),它的语法与C++类似,但去除了指针和头文件等特性,增强了语言的简洁性和安全性。SOLID是由五个面向对象设计原则的首字母缩写而成的,由Robert C. Martin提出,旨在使软件更易于理解和修改。

weixin_42509720的博客 1016

Java实现标签打印机图片打印的完整教程

ZPL(Zebra Programming Language)和EPL(Epson Programming Language)是两种专用的打印机编程语言,用于控制标签打印机打印特定格式的标签。这两种语言的设计初衷是为了让用户能够直接与打印机硬件进行高效、精准的交流,使得打印输出的标签满足业务需求的定制化需求。ZPL语言最初由Zebra Technologies开发,是其打印机的原生语言,广泛应用于物流、零售、制造等多个领域。EPL则是由Epson开发,它也同样广泛用于各种标签打印机中。

weixin_42361478的博客 1368

【Cubietruck】Qt5.8.0 x64、x86、armhf三个版本的编译安装

一、       Preparation 以下环境配置支持虚拟机和实体机,但是实体机生产效率会相对高一点,实体机编译Qt的速度是虚拟机两倍以上。 若使用虚拟机,推荐使用VirtualBox,开源免费,尽量不要使用Vmware破解版。   Download List   名称 链接 下载项目 OS https://mirro

beatfan的博客 3658
上一篇: 【从C++到Java一周速成】章节11:异常的处理
下一篇: 【从C++到Java一周速成】章节13:多线程
云沧同学
博客等级 码龄4年 577粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值