Golang Go语言中这个功能可以用流做到吗
Golang Go语言中这个功能可以用流做到吗
原始文件 01 有 9G 多,补丁文件 02 是 200MB。我想把 200MB 的补丁插入到文件 01 偏移 400MB 的位置…
如果可以的话可否说下如何实现
开个新文件,读取并写入 400MB, 读取并写入 200MB, 读取并写入剩余数据。
更多关于Golang Go语言中这个功能可以用流做到吗的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
dd ?
自带的 io 库就可以了
不太容易实现, 你弄了流之后, 怎么知道插哪一个 bit 后面呢?
对啊,如果前面计算读了多少?
如何
这个 mmap 最方便了
https://github.com/edsrzf/mmap-go
所以……这是和看雪是同一人吗…
这个问题我之前也碰到过,感觉没有什么特别好的办法,windows 下或许可以尝试稀疏文件 /操作 NTFS 结构
反正我最后选择了 1L 的做法
os.File 有个 Seek 方法
从首页看点进来的。
所以我要说 Python mmap 库可以不要怪我。
网上 mmap 库的用法看看就知道该怎么写了。
在Golang(Go语言)中,关于是否可以用“流”来实现某个功能,这主要取决于具体功能的性质以及你对“流”的定义。在Go中,“流”的概念通常与I/O操作(如文件读写、网络通信等)相关,也可以扩展到通过通道(channels)在goroutines之间传递数据流的场景。
-
文件和网络流:Go的标准库提供了强大的文件和网络操作支持,你可以使用
os
包和net
包来处理文件流和网络数据流。这些流支持读写操作,可以逐块或逐行处理数据。 -
数据流处理:如果你指的是在内存中处理数据流(如处理日志、数据流分析等),可以使用Go的切片(slices)和通道(channels)来实现。通道在Go中是一种非常有效的并发原语,可以用来在goroutines之间传递数据流。
-
第三方库:对于更复杂的数据流处理场景,如流处理框架(如Apache Kafka的客户端库),Go社区也提供了许多高质量的第三方库。
-
流式API:虽然Go语言本身没有内置的“流式API”概念(如Java 8中的Streams),但你可以通过组合函数式编程技术和通道来实现类似的功能。
因此,是否能用“流”来实现Go中的某个功能,关键在于你具体要实现的功能是什么,以及你如何定义和利用“流”。在Go中,通常有多种方法可以实现类似的功能,选择哪种方法取决于你的具体需求和偏好。