我是一名Java开发人员,因此在尝试操作文件时,您需要实例化该类的对象File。默认情况下,该对象将具有getAbsoluteFile()
。
但是,在C ++中,根据this,您使用了一个名为FILE的类型,该类型在stdio.h头文件中定义。既然它不是一个对象而是一个类型,它就没有方法,所以如何操作它 - 特别是如何重命名一个文件?
如果一个对象在C ++中有不同于Java的对象(从File场景来看,它看起来有所不同),那么等效于什么呢?
答案 0 :(得分:3)
FILE
来自C标准库,包含在C ++中以实现向后兼容性。 C不提供对OOP的支持,因此根本没有方法。您可以使用免费功能在FILE
上操作。
如果查看您链接的网站上的侧边栏,您会看到cstdio
标题中的功能列表。名称以f开头的大多数函数都以FILE*
作为第一个参数。要重命名文件,您可以使用rename;它不需要FILE*
,它需要两条路径(char*
)。
执行文件I / O的C ++方式越多,就越使用streams。
答案 1 :(得分:2)
你正在比较两件不同的事情。
在Java中,File是描述文件系统中的事物的对象,并且要更改/添加文件中的数据,您必须从文件中创建流。
In C FILE是打开文件的句柄,用于更改文件中的数据。在C ++中,您应该使用IOStreams。 C和C ++标准没有相当于Java文件的neaerest等价物是Boost Filesystem library。
答案 2 :(得分:0)
您不重命名文件,重命名文件。有一个名为rename
的函数可以重命名文件。它不对某个对象进行操作,因为C ++从没有对象的C继承它。它只是一个自由函数,它将旧名称和新名称作为参数。
#include <stdio.h>
rename("oldFileName.txt", "newFileName.txt");