首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第9章 文件IO操作、正则表达式与多线程第9章 文件IO操作、正则表达式与多线程

字符串到文件中 File.writeBytes(array: ByteArray): Unit 覆盖写入ByteArray字节流数组 File.appendText(text: String, charset...ByteArray字节流数组 9.1.1 读文件 readText : 获取文件全部内容字符串 我们如果简单读取一个文件,可以使用readText()方法,它直接返回整个文件内容。...我们如果希望直接操作文件的字节数组,可以使用readBytes 函数 //读取为bytes数组 val bytes: ByteArray = f.readBytes() println...更读取文件类似,我们可以写入字符串,也可以写入字节流,还可以直接调用 Java的 Writer 或者 OutputStream 类。写文件通常分为覆盖写(一次性写入)和追加写入两种情况。...Kotlin的Any类似于Java的Object,但是没有wait(),notify()和notifyAll() 方法。 那么并发如何在Kotlin中工作呢?

1.9K30

Carson带你学序列化:Google出品的序列化神器Protocol Buffer使用攻略

二进制数组 写 和 读 消息类型 使用方法包括: protocolBuffer.toByteArray(); // 序列化消息 并 返回一个包含它的原始字节的字节数组...protocolBuffer.parseFrom(byte[] data); // 从一个字节数组 反序列化(解析) 消息 如网络输出流) 序列化和反序列化消息...toString() : // 返回一个人类可读的消息表示(用于调试) public Builder mergeFrom(Message other) // 将 其他内容 合并到这个消息中,覆写单数的字段,附接重复的...(byteArray1)); // 查看序列化后的字节流 // b.反序列化 try { Demo.Person...person_Request = Demo.Person.parseFrom(byteArray1); // 当接收到字节数组byte[] 反序列化为 person消息类对象

1.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    《Kotin 极简教程》第15章 Kotlin 文件IO操作、正则表达式与多线程第15章 Kotlin 文件IO操作与多线程《Kotlin极简教程》正式上架:

    我们如果希望直接操作文件的字节数组,可以使用readBytes()。...//读取为bytes数组 val bytes: ByteArray = f.readBytes() println(bytes.joinToString(separator = " ")...我们可以写入字符串,也可以写入字节流。还可以直接使用Java的 Writer 或者 OutputStream。...appendBytes 追加字节数组到该文件中 方法签名: fun File.appendBytes(array: ByteArray) appendText 追加文本到该文件中 方法签名: fun File.appendText...那么并发如何在Kotlin中工作呢?放心,Kotlin 既然是站在 Java 的肩膀上,当然少不了对多线程编程的支持——Kotlin通过封装 Java 中的线程类,简化了我们的编码。

    3.4K20

    Java利用MessageDigest提供的MD5算法加密字符串或文件

    MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度的哈希值。...SHA-256 SHA-384 SHA-512 MD5是常用的加密算法,也经常用于校验信息完整,如文件的完整性...* 2]; // 遍历字节数组,通过位运算(位运算效率高),转换成字符放到字符数组中去 int index = 0; for (byte b : byteArray) {...附1:我在网上还看到一种给文件MD5的方式 public static String getFileMD5String(File file) throws IOException { FileInputStream...附2:测试文件MD5的main方法 public static void main(String[] args) { long startTime = System.currentTimeMillis

    21810

    使用 Kotlin 构建的常见问题解答 | Kotlin 迁移指南 (下篇)

    如何在 Android Studio 中使用 Kotlin? Android Studio 3.0 及更高版本全面支持 Kotlin。...详情请参阅 "Kotlin 使用入门"。 如何在 Android Studio 中调试 Kotlin 代码? Kotlin 代码的调试方法与 Java 代码相同。您不需要执行任何其他操作。...如何将 Kotlin 代码添加到我的新项目中? 当您在 Android Studio 中创建新项目时,只需选中 Include Kotlin support 复选框即可。...有关详情,请参阅 Kotlin 使用入门。 如何将 Kotlin 代码添加到我的现有项目中?...与此同时,开发者可以借助 Kotlin 与 Java 语言之间出色的互操作性,并利用相关功能在 Android Studio 中将 Java 语言代码自动转换成 Kotlin 代码。

    4.4K20

    java字符串的字节数组_Java字节数组到字符串到字节数组

    );  System.out.println(s1);        // ->"[97, 98, 99]"  System.out.println(s2);        // ->"abc";  如您所见...要添加正确的答案(尽管不完整),请执行以下操作:1)在Java中将任何byte []数组转换为String都应指定字符集。是byte []数组UTF-8还是其他?不够具体或不知道它可能造成错误。...= new String(byteArray);  System.out.println(reconstitutedString);  它将"酷字符串"输出到控制台。  ...在Java中将字节数组转换为字符串并将字符串转换回字节数组很简单。我们需要知道何时以正确的方式使用"新"。  ...您可以创建字节的字符串表示形式,因此它将是" [B @ 405217f8"",可以在Python中轻松地将其转换为bytes或bytearray对象。

    5.2K30

    IM通讯协议专题学习(六):手把手教你如何在Android上从零使用Protobuf

    本文基于我对Protobuf在Android端的实际使用心得,手把手教你如何在Android端IM产品中使用Protobuf,希望对你有帮助。...《IM通讯协议专题学习(六):手把手教你如何在Android上从零使用Protobuf》(* 本文)《IM通讯协议专题学习(七):手把手教你如何在NodeJS中从零使用Protobuf》《IM通讯协议专题学习...而固定长度编码就是即使前面的字节占位是 0,也不能去掉,我就是要占这么多字节。...7、Protobuf 转 Java 文件----首先我们要明白一点:Protobuf 是一种与平台,语言无关的数据存储格式,因此我们要在其它语言如:Java,Kotlin,Dart 等语言中使用它,则必须将...val byteArray: ByteArray = student.toByteArray()//3、反序列化从字节数组中解析消息val parseStudent: StudentOuterClass.Student

    3K60

    从15k到40k:资深Android必须掌握的3种架构设计模式

    薪资逻辑: 15k开发者:能实现功能,但代码耦合度高(如Activity塞满网络请求+数据库操作) 40k开发者:用架构思维解耦业务,支撑高并发、低延迟场景(如直播间弹幕分流策略) 二、突破瓶颈的3...种架构设计模式(附源码级解析) 模式1:反应式分层架构 —— 字节/阿里级复杂业务首选 核心公式: 响应式编程 × 分层设计 = 高并发处理能力 面试高频题: “抖音直播间消息流如何实现秒级同步...数据层:使用Kotlin Flow构建背压感知的消息管道,避免OOM 2. 业务层:通过StateFlow实现消息优先级分流(如礼物>弹幕>点赞) 3....message) // 非阻塞式发送 } awaitClose { removeListener(listener) } } 模式优势:线上崩溃率降低70%(数据来源:字节跳动技术白皮书...(业务规则) ↑↓ Data (数据库/网络) 致命陷阱: 错误案例:在Domain层直接引入Android SDK导致单元测试无法运行 正确实践: // 领域层纯Kotlin

    4410

    Kotlin 安装和语言的基本组成

    作为一门新秀语言,Kotlin 不仅支持编写代码在虚拟机上运行,而且还是一门跨平台的通用型语言:你可以用 Kotlin 开发各种类型的原生应用,如 macOS 应用、Windows 应用、JavaScript...Kotlin 对函数式编程的支持 函数式编程并不能完全取代面向对象编程,函数式编程擅长数据处理,如核心业务逻辑、算法实现等;而面向对象擅长构建 UI 界面编程、搭建系统架构等。 2....Java 程序运行过程 安装 Kotlin 集成开发环境 为了把 Kotlin 代码转译为字节码,编写 Kotlin 程序需要 JDK。所以这里先配置 JDK 环境。 1....设置“变量名”设置为 KOTLIN_HOME,“变量值”设置为 Kotlin 编译器解压路径。 将 Kotlin 编译器下的 bin 目录追加到 Path 环境变量 1....运行 Kotlin 程序 编写和运行 Kotlin 程序有多种方式,总的来说可以分为: 交互式方式运行 编译为字节码文件方式运行 这里将介绍 REPL 方式。

    59530

    在Java 中安全使用接口引用

    可惜的是Java 中并没有提供这种操作符,所以本文就和大家聊聊如何在Java 中构造出同样的效果。 由于源码分析与调用原理不属于本文的范畴,只提供解读思路,所以本文不涉及详细的源码解读,仅点到为止。...操作符只有对象引用不为空时才会分派调用 我们接下来分别拿Kotlin 和Groovy 举例: 在Kotlin 中使用 ' ?....= null) {} 效果相同的代码逻辑,无论是Java,Kotlin 还是Groovy,在字节码层面均表现一致。...=null){ callback.on() } } kotlinc 编译器在编译过程中将操作符?. 完完全全地替换成if (callback != null) {} 代码块。...Java,Kotlin 和Groovy 在字节码层面的处理方式基本相同。 为Java 添加' ?. ' 操作符 事情变得简单起来,我们只需要为Java 添加?. 操作符即可。

    1.8K20

    Android 低功耗蓝牙开发(扫描、连接、数据交互)Kotlin版

    ,再加上我也想写一些关于Kotlin的内容,对于低功耗蓝牙的Java版的,我写了两篇,一个是扫描、连接,另一篇就是数据交互,而这篇Kotlin文章我会减少讲解的环节,更多的注重业务逻辑和UI以及Kotlin...二、页面设计   首先改一下主题的颜色,列如标题,改成绿色。...layout_width="wrap_content" android:layout_height="wrap_content" android:text="空空如也...扫描之前要判断Android版本,6.0及以上需要动态请求权限,请求之后要判断蓝牙是否打开,蓝牙打开权限也有了就可以点击扫描蓝牙开始扫描了,扫描时显示加载条表示正在扫描,扫描到设备后添加到列表中,页面上渲染出来...增加代码如下图所示: 当扫描到设备时添加到获取设备地址和设备名称,如果设备名称为null则赋值为Unkown。

    1.8K20

    Android 低功耗蓝牙开发(扫描、连接、数据交互)Kotlin版

    ,再加上我也想写一些关于Kotlin的内容,对于低功耗蓝牙的Java版的,我写了两篇,一个是扫描、连接,另一篇就是数据交互,而这篇Kotlin文章我会减少讲解的环节,更多的注重业务逻辑和UI以及Kotlin...二、页面设计   首先改一下主题的颜色,列如标题,改成绿色。...layout_width="wrap_content" android:layout_height="wrap_content" android:text="空空如也...扫描之前要判断Android版本,6.0及以上需要动态请求权限,请求之后要判断蓝牙是否打开,蓝牙打开权限也有了就可以点击扫描蓝牙开始扫描了,扫描时显示加载条表示正在扫描,扫描到设备后添加到列表中,页面上渲染出来...增加代码如下图所示: 当扫描到设备时添加到获取设备地址和设备名称,如果设备名称为null则赋值为Unkown。

    3K31
    领券