热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

不同的文件格式以不同方式存储-DifferentFileFormatsarestoreddifferently

Thismightbeareallytrivialone.这可能是一个非常微不足道的。IsFilestorageOSdependant?文件存储操作系统依赖吗?Wh

This might be a really trivial one.

这可能是一个非常微不足道的。

Is File storage OS dependant ?

文件存储操作系统依赖吗?

Why do text Files change when moved from Dos to Unix, is it that the Editor in Unix interpret certain characters differently or does the File itself change when moved from Dos to Unix and hence the utility Dos to Unix.

为什么文本文件在从Dos移动到Unix时会发生变化,Unix中的编辑器是否会以不同的方式解释某些字符,或者当从Dos移动到Unix时文件本身会发生变化,因此实用程序Dos会变为Unix。

Why a Java Class File can be moved from Dos to Unix and that does not change ?

为什么Java类文件可以从Dos移动到Unix并且不会改变?

What is Platform Independent storage ?

什么是平台独立存储?

6 个解决方案

#1


There's a fundamental difference in the way that bytes and characters are stored. See:

字节和字符的存储方式存在根本区别。看到:

http://www.joelonsoftware.com/articles/Unicode.html

for a description of various character sets and how they differ between various operating system (plus a whole lot more).

用于描述各种字符集以及它们在各种操作系统之间的区别(加上更多)。

Java Class files are binary and always stored in Big Endian. This means that no matter what operating system they are moved between they will always be the same.

Java类文件是二进制文件,始终存储在Big Endian中。这意味着无论在哪个操作系统之间移动,它们都将始终相同。

#2


File Storage is not OS independant, even though the contents may be the same, the way it is interpreted is different. A point in case is many years ago I had to port (Business Basic) programs and data from a Datageneral minicomputer to DOS. The files came across with 8bit encoding and had to be translated (to 7 bit) before it could be "understood" on DOS.

文件存储不是OS独立的,即使内容可能相同,它的解释方式也不同。一个案例就是多年前我不得不将(商业基础)程序和数据从Datageneral小型机移植到DOS。这些文件遇到了8位编码,必须先翻译成7位才能在DOS上“理解”。

#3


Short answer: it depends.

简短的回答:这取决于。

Text files do not change by themselves when moved from DOS to Unix: Try moving them using a USB key for instance.

从DOS移动到Unix时,文本文件不会自行更改:例如,尝试使用USB密钥移动它们。

They may change when copied using a thrid party software: ftp has an option to handle text conversions.

使用第三方软件复制时,它们可能会发生变化:ftp可以选择处理文本转换。

Moreover, this depends not only on OS but also on filesystem. On pre OS X macs (HFS filesystem), files were stored on two forks: data and resources. When copied on a filesystem without fork concept, file could be copied as a single file containing both data and resource forks (AppleSingle) or as two files in two separate directories (AppleDouble).

而且,这不仅取决于操作系统,还取决于文件系统。在OS X之前的Mac(HFS文件系统)上,文件存储在两个分支上:数据和资源。在没有fork概念的文件系统上复制时,可以将文件复制为包含数据和资源分支(AppleSingle)的单个文件,也可以将文件复制为两个单独目录(AppleDouble)中的两个文件。

#4


There are two differences:

有两点不同:

Newlines

  • Unix: \n
  • Mac OS before X: \r
  • X之前的Mac OS:\ r \ n

  • Windows: \r\n

Little/big endianness

The edianess might be different, but this does often only matter for unicode and binary data.

edianess可能不同,但这通常只对unicode和二进制数据有用。

#5


No, files do not change. Only the conventions for editing them.

不,文件不会改变。只有编辑它们的约定。

What can change is the filesystem structure and metadata used to catalogue and list directories etc (ie; timestamps). Also files will naturally be encrypted on an encrypted filesystem but filesystem complexities are nearly always transparent to an application reading the file through system calls (they would be relevant if you were writing a partition resizer or other low-level disk tool).

可以改变的是用于编目和列出目录等的文件系统结构和元数据(即;时间戳)。此外,文件自然会在加密文件系统上加密,但文件系统的复杂性对于通过系统调用读取文件的应用程序几乎总是透明的(如果您正在编写分区大小调整器或其他低级磁盘工具,它们将是相关的)。

To clarify, there is nothing in the linux OS that requires vim or emacs to use the unix convention. In fact many editors and applications can detect the newline encoding and adapt. It's up to the software how to treat files, not the OS.

为了澄清,linux操作系统中没有任何内容需要vim或emacs来使用unix约定。实际上,许多编辑器和应用程序可以检测换行编码并进行调整。这取决于软件如何处理文件,而不是操作系统。

#6


In general the filesystem will store the file the way it was asked to write it. The program that reads the file will interpret the bytes from the file.

通常,文件系统将按照要求写入文件的方式存储文件。读取文件的程序将解释文件中的字节。

For example, in DOS (and Windows) the newline consists of two bytes, but on Unix it's only one byte. But this is only an standard. Programs on Unix can read files with two-byte newlines. These programs just need to know how what the newlines are.

例如,在DOS(和Windows)中,换行符包含两个字节,但在Unix上它只有一个字节。但这只是一个标准。 Unix上的程序可以读取具有双字节换行符的文件。这些程序只需知道新行是什么。


推荐阅读
  • BZOJ 1835: 基站位置选择问题(动态规划与线段树优化) ... [详细]
  • MongoDB高可用架构:深入解析Replica Set机制
    MongoDB的高可用架构主要依赖于其Replica Set机制。Replica Set通过多个mongod节点的协同工作,实现了数据的冗余存储和故障自动切换,确保了系统的高可用性和数据的一致性。本文将深入解析Replica Set的工作原理及其在实际应用中的配置和优化方法,帮助读者更好地理解和实施MongoDB的高可用架构。 ... [详细]
  • 在Python编程中,探讨了并发与并行的概念及其区别。并发指的是系统同时处理多个任务的能力,而并行则指在同一时间点上并行执行多个任务。文章详细解析了阻塞与非阻塞操作、同步与异步编程模型,以及IO多路复用技术的应用。通过模拟socket发送HTTP请求的过程,展示了如何创建连接、发送数据和接收响应,并强调了默认情况下socket的阻塞特性。此外,还介绍了如何利用这些技术优化网络通信性能和提高程序效率。 ... [详细]
  • STAR: 转录组数据分析中的高效比对工具介绍
    欢迎关注“生信修炼手册”!STAR 是一款专为 RNA-seq 数据设计的高效比对工具,以其卓越的速度和高灵敏度著称。该软件在处理大规模转录组数据时表现出色,能够显著提高比对效率和准确性。此外,GATK 推荐使用 STAR 进行预处理步骤,以确保后续分析的可靠性。 ... [详细]
  • 本书详细介绍了在最新Linux 4.0内核环境下进行Java与Linux设备驱动开发的全面指南。内容涵盖设备驱动的基本概念、开发环境的搭建、操作系统对设备驱动的影响以及具体开发步骤和技巧。通过丰富的实例和深入的技术解析,帮助读者掌握设备驱动开发的核心技术和最佳实践。 ... [详细]
  • 在稀疏直接法视觉里程计中,通过优化特征点并采用基于光度误差最小化的灰度图像线性插值技术,提高了定位精度。该方法通过对空间点的非齐次和齐次表示进行处理,利用RGB-D传感器获取的3D坐标信息,在两帧图像之间实现精确匹配,有效减少了光度误差,提升了系统的鲁棒性和稳定性。 ... [详细]
  • 进程(Process)是指计算机中程序对特定数据集的一次运行活动,是系统资源分配与调度的核心单元,构成了操作系统架构的基础。在早期以进程为中心的计算机体系结构中,进程被视为程序的执行实例,其状态和控制信息通过任务描述符(task_struct)进行管理和维护。本文将深入探讨进程的概念及其关键数据结构task_struct,解析其在操作系统中的作用和实现机制。 ... [详细]
  • Go语言实现Redis客户端与服务器的交互机制深入解析
    在前文对Godis v1.0版本的基础功能进行了详细介绍后,本文将重点探讨如何实现客户端与服务器之间的交互机制。通过具体代码实现,使客户端与服务器能够顺利通信,赋予项目实际运行的能力。本文将详细解析Go语言在实现这一过程中的关键技术和实现细节,帮助读者深入了解Redis客户端与服务器的交互原理。 ... [详细]
  • 本文探讨了在Linux 2.6内核中实现进程隐藏的技术方法与实践。通过分析系统调用 `sys_getdents` 的工作原理,提出了一种有效的方法来隐藏指定的进程。该方法通过对内核模块进行修改,拦截并过滤掉目标进程的相关信息,从而在常用的进程查看命令(如 `ps` 和 `top`)中无法显示这些隐藏的进程。实验结果表明,该方法在实际应用中具有较高的隐蔽性和稳定性。 ... [详细]
  • 深入解析零拷贝技术(Zerocopy)及其应用优势
    零拷贝技术(Zero-copy)是Netty框架中的一个关键特性,其核心在于减少数据在操作系统内核与用户空间之间的传输次数。通过避免不必要的内存复制操作,零拷贝显著提高了数据传输的效率和性能。本文将深入探讨零拷贝的工作原理及其在实际应用中的优势,包括降低CPU负载、减少内存带宽消耗以及提高系统吞吐量等方面。 ... [详细]
  • Go语言中的高效排序与搜索算法解析
    在探讨Go语言中高效的排序与搜索算法时,本文深入分析了Go语言提供的内置排序功能及其优化策略。通过实例代码,详细讲解了如何利用Go语言的标准库实现快速、高效的排序和搜索操作,为开发者提供了实用的编程指导。 ... [详细]
  • 构建用户可查询的员工信息管理系统(上篇)
    构建用户可查询的员工信息管理系统(上篇)旨在设计一个安全且易于使用的员工信息查询平台。该系统要求实现以下功能:1. 用户必须通过身份验证才能访问系统;2. 员工信息表应包含关键字段,如ID、姓名、部门和电话号码;3. 身份验证成功后,用户能够准确查询到所需信息。此外,系统还应具备数据加密和权限管理等高级功能,以确保信息安全和合规性。 ... [详细]
  • C#中实现高效UDP数据传输技术
    C#中实现高效UDP数据传输技术 ... [详细]
  • 理工科男女不容错过的神奇资源网站
    十一长假即将结束,你的假期学习计划进展如何?无论你是在家中、思念家乡,还是身处异国他乡,理工科学生都不容错过一些神奇的资源网站。这些网站提供了丰富的学术资料、实验数据和技术文档,能够帮助你在假期中高效学习和提升专业技能。 ... [详细]
  • 在进行网络编程时,准确获取本地主机的IP地址是一项基本但重要的任务。Winsock作为20世纪90年代初由Microsoft与多家公司共同制定的Windows平台网络编程接口,为开发者提供了一套高效且易用的工具。通过Winsock,开发者可以轻松实现网络通信功能,并准确获取本地主机的IP地址,从而确保应用程序在网络环境中的稳定运行。此外,了解Winsock的工作原理及其API函数的使用方法,有助于提高开发效率和代码质量。 ... [详细]
author-avatar
真实的姜伯约_832
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有