0

我是一名 Java 开发人员,因此在尝试对文件进行操作时,您会实例化 File 类的一个对象。默认情况下,该对象将具有诸如getAbsoluteFile().

但是,在 C++ 中,根据this,您可以使用在 stdio.h 头文件中定义的称为 FILE 的类型。因为它不是一个对象而是一个类型,所以它没有方法,那么如何操作它——特别是如何重命名一个文件?

如果对象与 Java 不同(从 File 场景判断,它似乎不同),那么拥有一个在 C++ 中具有方法的对象的等价物是什么?

4

3 回答 3

3

FILE来自 C 标准库并包含在 C++ 中以实现向后兼容性。C 不提供对 OOP 的支持,因此它根本没有方法。您可以FILE使用自由函数对 s 进行操作。

如果您查看链接站点上的侧边栏,您会从cstdio标题中看到功能列表。大多数名称以 f 开头的函数都将 aFILE*作为第一个参数。要重命名文件,您可以使用rename;它不需要 a FILE*,它需要两条路径(as char*)。

执行文件 I/O 的更多 C++ 方式是使用

于 2013-02-12T15:00:42.187 回答
2

你在比较两个不同的东西。

在 Java 中,文件是描述文件系统中事物的对象,并且要更改/添加文件中的数据,您必须从文件中创建一个流。

在 C 中 FILE 是打开文件的句柄,用于更改文件中的数据。在 C++ 中,你真的应该使用IOStreams。C 和 C++ 标准没有 Java 文件的等价物,最接近的等价物是Boost Filesystem 库

于 2013-02-12T15:11:23.973 回答
0

您不重命名文件,而是重命名文件。有一个名为rename重命名文件的函数。它不对对象进行操作,因为 C++ 从没有对象的 C 继承了它。它只是一个以旧名称和新名称作为参数的自由函数。

#include <stdio.h>
rename("oldFileName.txt", "newFileName.txt");
于 2013-02-12T14:59:11.840 回答