`

tango.io.device.File 翻译

阅读更多

tango.io.device.File (r4796)

License:

BSD style: see license.txt

Version:

Mar 2004: Initial release Dec 2006: Outback release Nov 2008: relocated and simplified

Author:

Kris, John Reimer, Anders F Bjorklund (Darwin patches), Chris Sauls (Win95 file support)

class File : Device, Device.Seek #
实现读写一个普通文件的手段。conduits(管道)是访问外部数据的初级手段,File(文件)通过提供文件特有的方法扩展了基本模式,可以设置文件大小、搜索特定文件位置等等。串行(Serial)输入输出是直接的(straightforward)。在这个例子中,我们直接拷贝一个文件到控制台:
1
2
3
4
5
// 打开一个文件用于读
auto from = new File ("test.txt");

//直接流到控制台 
Stdout.copy (from);
这里,我们复制一个文件到另一个:
1
2
3
4
5
6
7
8
9
// 打开一个文件用于读。
auto from = new File ("test.txt");

// 打开另一个文件用于写。
auto to = new File ("copy.txt", File.WriteCreate);

// 复制文件并关闭。
to.copy.close;
from.close;
你可以用InputStream.load()直接载入一个文件到内存:
1
2
3
auto file = new File ("test.txt");
auto content = file.load;
file.close;

或用File中的一个方便的静态函数:

1
auto content = File.get ("test.txt");

得到类似结果的一个更明确的版本:

1
2
3
4
5
6
7
8
9
// 打开一个文件用于读。
auto file = new File ("test.txt");

//创建一个数组容纳整个文件。 
auto content = new char [file.length];

//读取文件内容。返回值是读取的字节数。 
auto bytes = file.read (content);
file.close;

相反,我们可以直接写内容到一个文件中:

1
2
3
4
5
//打开一个用于写的文件。
auto to = new File ("text.txt", File.WriteCreate);

//写一个内容的数组到这个文件中。 
auto bytes = to.write (content);

有等价的静态函数, File.set()File.append(),分别设置和添加文件内容。

文件可以幸福地用随机I/O处理。在这里我们用seek()重新配置(relocate)这个文件指针。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 打开一个文件用于读和写。
auto file = new File ("random.bin", File.ReadWriteCreate);

//写一些数据。 
file.write ("testing");

// 退到文件开始
file.seek (0);

// 再次读回数据。
char[10] tmp;
auto bytes = file.read (tmp);

file.close;

编译时带上 -version=Win32SansUnicode 参数以得到Win95 & Win32s的文件支持。

struct Style #
适合32...
Access access #
访问权限。
Open open #
怎样打开
Share share #
怎样共享
Cache cache #
如何缓存
enum Access #
Read #
是否可读。
Write #
是否可写
ReadWrite #
读写都可以。
enum Open #
Exists #
必须存在。
Create #
创建或截短
Sedate #
如果必要的话就创建
Append #
如果必要的话就创建
New #
不能存在。
enum Share #
None #
不共享
Read #
共享读
ReadWrite #
对任何情况都可打开。
enum Cache #
None #
不优化。
Random #
随机优化。
Stream #
对流优化。
WriteThru #
backing-cache flag后台缓存标志
Style ReadExisting [const] #
读一个已存在的文件。
Style ReadShared [const] #
读一个已存在的文件。
Style WriteExisting [const] #
写一个已存在的文件。不创建。
Style WriteCreate [const] #
在一个干净的文件上写。必要的话创建。
Style WriteAppending [const] #
写到文件末尾。
Style ReadWriteExisting [const] #
读写一个已存在的文件。
Style ReadWriteCreate [const] #
在一个干净的文件上读写。必要的话创建。
Style ReadWriteOpen [const] #
读和写。如果存在的话使用现存文件。
this() #
创建一个文件给open()用。
this(char[] path, Style style = ReadExisting) #
用提供的路径和类型创建一个文件。
Style style() #
返回这个文件使用的类型。
char[] toString() [override] #
返回这个文件使用的路径。
long position() #
返回当前文件位置。
long length() #
返回这个文件的总长度。
void[] get(char[] path, void[] dst = null) [static] #
返回一个文件内容的方便函数。返回提供输出缓冲器的一个切片,输出缓冲器有足够的容积,如果文件内容很大的话就从堆上分本配。
文件大小通过文件系统的每个File.length决定,尽管在一些nix系统上会被误解。一个替换者是用File.load载入内容直到遇到Eof(文尾符)。
void set(char[] path, void[] content) [static] #
设置文件内容和长度以反映给定数组的方便函数。
void append(char[] path, void[] content) [static] #
添加内容到一个文件中的方便函数。
bool open(char[] path, Style style, DWORD addattr) [protected] #
需要应用特殊属性的低级打开子集。

返回:失败时返回false

void open(char[] path, Style style = ReadExisting) #
用提供的类型打开一个文件。
size_t read(void[] dst) [override] #
从文件读取一个字节块到提供的数组(典型的属于一个IBuffer)。
返回读取的字节数,没有进一步数据时返回Eof(文尾符)。
size_t write(void[] src) [override] #
从提供的数组写一个字节块到文件(典型的属于IBuffer)。
void truncate() #
设置文件大小到当前找到的位置。要使这个操作成功,文件必须是可写的。
void truncate(long size) #
设置文件大小到指定长度。要使它成功文件必须是可写的。
long seek(long offset, Anchor anchor = Anchor.Begin) [override] #
设置文件找到的位置为从给定锚点(anchor )到特定偏移量(specified offset)。

Copyright (c) 2004 Kris Bell. All rights reserved :: Generated by dil on Mon Jul 20 00:18:23 2009. Rendered by kandil.

分享到:
评论

相关推荐

    tango-controls.pdf

    设备服务器(Device Servers)负责提供对物理设备或者软件功能的接口。Tango还提供了多种工具和扩展,例如内置工具、归档工具、图形用户界面(GUI)构建工具以及各种语言的绑定工具,如Python、Java等。 开发者指南详述...

    Windows安装TANGO教程.docx

    ### Windows安装TANGO教程知识点详解 #### 一、前言 本教程旨在详细介绍如何在Windows 10操作系统上搭建TANGO环境。TANGO是一种广泛应用于分布式控制系统的框架,尤其适用于科学仪器与工业自动化领域的应用。本文将...

    TangoTagger:Clojure 库,用于根据来自 tango.info 网站的数据自动标记探戈歌曲

    探戈标签Clojure 库,用于根据来自 tango.info 网站的数据自动标记探戈歌曲。执照版权所有 :copyright: 2014 Bruno Alfirević 根据 Eclipse 公共许可证分发 1.0 版或(由您选择)任何更高版本。

    谈客视频电话 Tango v3.13.128111

    谈客视频电话 Tango v3.13.128111 更新时间:2015-01-14 版本:3.13.128111 软件语言:多语言 软件类别:网络语音 软件大小:26.18 MB 适用固件:2.1及更高固件 内置广告:没有广告 适用平台:Android Tango为您...

    学习D语言的tango:第三章 D的面向对象特性

    例如,`tango.io.File`类提供了对文件的基本操作,而`tango.container.List`类则实现了动态列表。这些类通常设计为易于使用且灵活,同时支持模板(templates),使你能以类型安全的方式处理各种数据。 在实际编程中...

    Tango视频电话 v3.13.127894

    Tango视频电话3.13.127894 Tango Video Calls 大小:26.18MB 更新时间:2015-01-12 Tango为您带来免费的高品质视频通话,在3G和Wi-Fi网络上都运行如飞!全世界数百万用户都在使用妙趣横生又简单易用的Tango视频...

    tango, 微型&可以插入网络框架.zip

    tango, 微型&可以插入网络框架 Tango 软件包探戈是一个微型&可以插入的网页框架。当前版本:v0.5.0 版本的历史记录。正在启动要安装 Tango:go get github.com/lunny/tango

    PyPI 官网下载 | django-tango-0.3.1.tar.gz

    标题"PyPI 官网下载 | django-tango-0.3.1.tar.gz"表明这是一个从Python Package Index (PyPI)官方源下载的软件包,名为"django-tango",版本号为0.3.1,其格式是tar.gz。PyPI是Python社区中最主要的第三方软件库...

    authz:移动了https

    身份验证 authz是的授权中间件,它基于 。 安装 ...简单的例子 package main import ( ... tg := tango .... HandlerFunc ( func ( ctx * tango. Context ) { sess := sessions . Session ( ctx . Req ()

    tango-colors:探戈颜色定义用于python,乳胶和其他..

    如果要在乳胶文档中使用这些探戈颜色,请将tango.sty放在某个可以找到乳胶的地方。 例如,在texmf目录中。 Python 您有两种使用颜色的方法。 如果只需要HTML模型,则可以导入TANGO_HTML_COLORS ,这是探戈颜色的...

    Python库 | tango-comments-0.4.3.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:tango-comments-0.4.3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    flume-redis:Flume-Redis添加了源和接收器功能以支持Apache Flume中的Redis

    agent.sources.redisSource.type = com.tango.logstash.flume.redis.source.RedisSource agent.sources.redisSource.host = localhost agent.sources.redisSource.key = logstash agent.sources.redisSource.batch_...

    Tango-D2:Tango库到D2的端口

    现在,这意味着基本上所有用户模块(tango.math.BigNum除外,别名为std.bigint,直到另行通知)和大多数tango.core模块都已移植。 doc / examples文件夹中的示例也应该起作用。 我在Linux上进行移植,因此这是经过...

    Python库 | tango-articles-0.12.1.tar.gz

    《Python库:tango-articles-0.12.1.tar.gz详解》 在Python的世界里,库扮演着至关重要的角色,它们为开发者提供了丰富的功能,简化了代码编写过程。今天我们将聚焦于一个名为“tango-articles”的库,其版本为...

    manual-zh-CN:Tango使用指南 Moved to https

    Tango Tango 是一个微内核易扩展的Go语言Web框架,他兼有Beego的效率和Martini的中间件设计。 最近更新 ... tango.JSON } func (Action) Get() interface{} { if true { return map[string]string{

    TangoSDK_Eisa_Unity5.unitypackage

    TangoSDK_Eisa_Unity5.unitypackage

    tango风格的XP主题

    “TANGO的最爱”可能意味着这个主题是对Tango设计风格的一种致敬或特别优化,是Tango风格的忠实体现,因此深受Tango风格爱好者的喜欢。 【标签解析】 “tango”标签直接关联了设计风格,指明了主题的视觉特征。...

    tango:一个基于React的WordPress主题原型

    将探戈存储git clone git@github.com:kwight/tango.git到您的wp-content/themes/文件夹中: git clone git@github.com:kwight/tango.git cd进入新的Tango主题,然后运行npm install 。 运行npm run build来创建...

    TANGO电路原理图库文件的数据结构分析.pdf

    TANGO电路原理图库文件的数据结构分析 引言: TANGO软件是一个广泛使用的绘图软件,在我国尤其流行。它能绘制电路原理图和印刷电路板图,其数据文件的结构在相关文献中有介绍,但关于库文件的数据结构信息却很少。...

    Tango助手-crx插件

    语言:English,中文 (简体) 自动提取bugly页面的日志数据,并以可读性更高的UI形式展现 自动提取bugly页面的日志数据,并自动弹窗显示;支持多种显示日志方式:1. 自动弹窗提醒;可通过设置,取消自动弹窗提醒(默认...

Global site tag (gtag.js) - Google Analytics