`
java--hhf
  • 浏览: 309110 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论
阅读更多

                   自定义文件类型的保存和读出

 

  文件类型是文件的一种格式。我们常见格式,如:".txt"、".exe"。它们指的是文件的一种保存方式,并且我们每次读出其中的消息的时候也会按照这一种相应的方式。

  老师告诉我们这些格式都是由大公司们自己确定的,然后让全球来遵守。于是,下面我就带着大家来创建自己的个人文件格式,由自己来遵守。当我们的影响力超过了乔布斯的时候,这格式也会叫全球共同认可滴。

  创建的一种新的文件格式“.hhf”——文件的前面部分为文件的说明文件名,文件的大小;文件的后面部分为文件的内容。

  创建这种新文件格式还应该包含两个部分——文件的创建保存,和文件的读取。 

/*
 * 将二维数组中的数据保存到指定的文件中 (文件头信息 文件大小宽高 文件数据( 二维数组中的数据))
 * 
 * @param array 要保存的二位数组
 * 
 * @param path 存入的文件路径
 */
public void saveFile(int[][] array, String path) {
try {
	// 文件输出流
	FileOutputStream fos = new FileOutputStream(path);
	// 将文件输出流包装成可写基本数据类型的数据流
	DataOutputStream dos = new DataOutputStream(fos);

	// 写文件头信息
	dos.writeByte(72);
	dos.writeByte(72);
	dos.writeByte(70);
	// 宽度和高度
	dos.writeInt(array.length);
	dos.writeInt(array[0].length);

	// 写文件数据
	for (int i = 0; i < array.length; i++) {
                	for (int j = 0; j < array[i].length; j++) {
			int num = array[i][j];
			dos.writeInt(num);
		}
	}
	// 强制输出数据
	dos.flush();
	dos.close();
} catch (Exception ef) {
	ef.printStackTrace();
}

 

下一个就会是文件的读取函数——注意文件的读取格式和上一个函数文件的保存格式高度一致。

 

/**
 * 打开指定的文件
 * 
 * @param path
 *            文件的路径
 * @return 将文件中的数据装在二维数组中返回
 */
public int[][] openFile(String path) {
try {
	// 文件输入流
	FileInputStream fis = new FileInputStream(path);
	// 包装
	DataInputStream dis = new DataInputStream(fis);
	// 读文件头
	byte b1 = dis.readByte();
	byte b2 = dis.readByte();
	byte b3 = dis.readByte();
	System.out.println("文件头:" + b1 + b2 + b3);
	// 读取宽度和高度
	int width = dis.readInt();
	int height = dis.readInt();
	System.out.println("文件大小:" + width + height);
	// 准备接收数据
	//int[][] array = new int[height][width];
	// 读数据
	for (int i = 0; i < saveColor.length; i++) {
		for (int j = 0; j < saveColor[i].length; j++) {
			int num = dis.readInt();
			saveColor[i][j] = num;
		}
	}
	return saveColor;
} catch (Exception ef) {
	ef.printStackTrace();
}
return null;
}

 到这里,相信各位对文件格式的概念,大概有了新的理解吧^_^。

0
1
分享到:
评论

相关推荐

    Flash多文件大文件上传自定义文件类型

    "Flash多文件大文件上传自定义文件类型"这个主题聚焦于使用Adobe Flash技术实现这一复杂需求。以下是关于这个主题的详细解释: 首先,**多文件上传**是指允许用户一次性选择并上传多个文件的功能。这种功能在社交...

    qt文件操作读写自定义类型

    在Qt中,如果你有一个自定义的数据类型,比如一个包含多个成员变量的结构体或类,你可以通过重载QDataStream的输入和输出操作符,使得这个自定义类型可以直接在文件或网络流中进行序列化和反序列化。 例如,假设...

    去除bom头小工具,单个可执行文件,可按文件夹批量替换,支持自定义文件类型

    在IT行业中,BOM(Byte Order Mark)头通常是指UTF-8编码格式文件中...通过批量处理和自定义文件类型的功能,它可以有效地帮助用户整理和优化他们的文件集合,同时,其便携式设计使得在各种环境下的使用变得简单易行。

    自定义文件格式 自定义文件格式

    自定义文件格式是一种根据特定需求或应用场景而设计的独特数据存储方式。在计算机世界中,文件格式决定了一个文件如何被解析、存储以及交换信息。常见的文件格式有文本文件(如.txt)、图像文件(如.jpg、.png)、...

    C#中的序列化问题,实现自定义的文件类型

    本文将深入探讨如何在C#中实现类的序列化,并创建自定义的文件类型来保存数据。 首先,要实现一个类的序列化,我们需要在类上添加`[Serializable]`属性,这表明该类的实例可以被序列化。例如: ```csharp ...

    创建自定义文件后缀名

    在弹出的对话框中输入你的自定义文件类型描述,例如“My Custom File”。 5. **创建子项并设置关联程序**:在`myNewFile`项下再创建一个新项,命名为`.myNewFile`(注意前面的点)。然后在`.myNewFile`项的默认值中...

    C#自定义类型Windows应用程序实现

    3、保存的自定义文件(.cfo格式)可以自动关联图标 4、双击.cfo文件可以自动启动自定义程序打开 主要采用方法: 1、把文件关联信息保存到系统注册表,按指定格式存储,文件即可自动和程序和图标关联! 2、采用...

    易语言自定义数据类型变量保存

    它可能是易语言中一个用于序列化自定义数据类型的工具,将复杂的数据结构转换为可存储的格式,如文本文件或二进制文件。序列化是将程序中的对象状态转换为可以存储或传输的形式的过程,反序列化则是相反的过程,将...

    易语言自定义数据类型的内存存储方式

    在提供的"易语言自定义数据类型的内存存储方式"源码文件中,你可以找到具体的实现细节,例如数据类型的定义、成员的读写函数等。 总的来说,易语言自定义数据类型的内存存储方式是编程中一个基础但关键的概念,理解...

    C#设置自定义文件图标实现双击启动(修改注册表)

    以下是一段示例代码,展示了如何将自定义文件类型(例如 `.test`)与一个可执行程序关联,并设定文件图标: ```csharp using Microsoft.Win32; // 定义程序启动路径、文件扩展名、文件类型和内容类型 string ...

    易语言内存自定义数据类型

    结合提供的压缩包文件"易语言内存自定义数据类型源码",我们可以期待学习到如何在易语言中定义、创建、使用和管理内存自定义数据类型,以及如何利用上述Windows API函数进行跨进程操作。这些源码可能会展示如何封装...

    sharepoint 自定义字段类型

    4. 配置XML定义:编写XML定义文件,用于在站点或列表级别实例化自定义字段。 三、自定义字段类型的实现细节 1. 数据模型:定义字段类型的数据模型,包括其数据结构、默认值、数据验证规则等。 2. 用户界面:创建...

    MIME类型的自定义

    下面是一个简单的示例,展示了如何在Web服务器配置文件中添加自定义MIME类型: ```apache AddType application/vnd.example.doc .exampledoc ``` 在这个例子中,我们为`.exampledoc`文件扩展名添加了一个名为`...

    火山PC类似易语言的自定义数据类型结构体案例

    在编程领域,自定义数据类型和结构体是程序员在实现特定功能时不可或缺的工具。火山PC(VolcanoPC)是一个类似易语言的编程环境,它提供了丰富的编程特性,包括自定义数据类型的创建和使用。本案例将深入探讨如何在...

    SQL SERVER的数据类型自定义

    4. **二进制类型**:包括`binary`、`varbinary`和`image`,用于存储二进制数据,如图片或文件。 5. **其他类型**:如`money`、`smallmoney`、`bit`、`cursor`、`sysname`等,分别用于存储货币值、布尔值、系统名称...

    自定义文件管理器

    【自定义文件管理器】是一种实现用户个性化需求的软件工具,它允许用户更方便地浏览、操作、组织和管理计算机中的文件与目录。在本文中,我们将深入探讨自定义文件管理器的核心概念、功能和实现方式,以及如何利用...

    Hibernate使用——自定义数据类型

    接着,在配置文件中添加自定义类型,或者在实体类的日期时间字段上使用`@Type`注解。 自定义数据类型可以极大地增强代码的可读性和可维护性,尤其是在处理复杂的数据结构时。例如,如果你有一个复杂的JSON字符串...

    易语言自定义数据类型与字节集转换

    而"字节集文件到自定义"和"写到自定"可能指的是从字节集文件读取数据并转换回自定义数据类型,或者将自定义数据类型的数据写入到指定的位置。 "GlobalSize"函数在易语言中用于获取全局变量的大小,这在处理自定义...

    struts2自定义结果类型demo

    这个"struts2自定义结果类型demo"可能包含了上述所有步骤的代码示例,包括配置文件、自定义结果类型类以及相关的Action配置。对于初学者,这是一个很好的实践案例,可以帮助理解Struts2的扩展机制和控制流程。通过...

    易语言DLL返回自定义数据类型源码

    8. content.txt文件:这个文件可能包含了具体的源码示例,用于演示如何在易语言中实现DLL返回自定义数据类型的功能。具体的内容需要查看文件才能分析和学习。 总结起来,易语言DLL返回自定义数据类型涉及到的关键...

Global site tag (gtag.js) - Google Analytics