C++ 我们可以在SDL2中使用std::fstream而不是SDL_RWops吗?

C++ 我们可以在SDL2中使用std::fstream而不是SDL_RWops吗?,c++,fstream,sdl-2,C++,Fstream,Sdl 2,作为标题,SDL\u RWops在处理I/O文件方面是否比std::fstream有任何优势?我是否可以使用std::fstream,因为我更熟悉它?通过阅读他们的文档,您可以发现std::fstream是: 用于对文件进行操作的输入/输出流类 另一方面,SDL\u RWops是更多的东西: SDL_RWops是对I/O的抽象。它提供了读取、写入和查找流中数据的接口,而调用方不需要知道数据来自何处 例如,RWOP可能由内存缓冲区、磁盘上的文件或与web服务器的连接提供,而不改变调用方使用数据的方

作为标题,
SDL\u RWops
在处理I/O文件方面是否比
std::fstream
有任何优势?我是否可以使用
std::fstream
,因为我更熟悉它?

通过阅读他们的文档,您可以发现
std::fstream
是:

用于对文件进行操作的输入/输出流类

另一方面,
SDL\u RWops
是更多的东西:

SDL_RWops是对I/O的抽象。它提供了读取、写入和查找流中数据的接口,而调用方不需要知道数据来自何处

例如,RWOP可能由内存缓冲区、磁盘上的文件或与web服务器的连接提供,而不改变调用方使用数据的方式

相当抽象

那么,您能否使用
std::fstream
来代替文件的
SDL\u RWops
?当然,如果你觉得更有信心,就去做吧。后者是对游戏中任何类型的流的有用抽象,因此其优点不仅仅是读取文件。

可以用于许多类型的数据流。标准SDL提供了
SDL_RWFromFile
SDL_rwfromfrommem
,而其他库(如)为许多受支持的归档类型提供了RWops的实现


RWOP的主要优点是所有SDL系列库(SDL_映像、SDL_混频器等)都支持从RWOP加载,因此您可以轻松地向它们提供自己的特定数据源(例如,存档格式,甚至网络源)。除此之外,它可能对您的代码有好处,也可能没有好处,这取决于您的需要。

重要提示:
SDL\u RWops
使用android上的JNI从APK读取文件<代码>标准::fstream不要。