QString 存储到文件
时间: 2024-05-16 08:16:54 浏览: 63
可以使用 QFile 类来将 QString 存储到文件中。以下是一个示例代码:
```cpp
#include <QFile>
#include <QTextStream>
void saveStringToFile(QString str, QString filename)
{
QFile file(filename);
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
return;
QTextStream out(&file);
out << str;
file.close();
}
```
在上面的代码中,我们首先创建一个 QFile 对象,并打开文件以进行写入操作。然后,我们创建一个 QTextStream 对象,并将其与 QFile 对象关联。最后,我们将 QString 写入 QTextStream 中,并关闭文件。
要使用该函数,只需将要保存的字符串和文件名作为参数传递即可:
```cpp
QString myString = "Hello, world!";
saveStringToFile(myString, "myFile.txt");
```
这将在当前目录下创建一个名为 "myFile.txt" 的文件,并将字符串 "Hello, world!" 写入该文件中。
相关问题
QT QStringList写入文件
在Qt中,`QStringList`是一种用于存储字符串序列的数据结构,如果你想将它写入到文件中,你可以通过以下步骤操作:
1. 首先,创建一个`QStringList`实例,并填充你需要保存的数据。
```cpp
QStringList dataList;
dataList << "元素1" << "元素2" << "元素3";
```
2. 然后,创建一个文件流对象`QFile`,并打开你要写入的文件,可以指定写入模式(如追加模式"appended"、文本模式"text"等)。
```cpp
QFile file("output.txt", QIODevice::WriteOnly | QIODevice::Text);
if (!file.open()) {
qDebug() << "无法打开文件:" << file.errorString();
return;
}
```
3. 使用`QDataStream`来读写文件,因为`QStringList`不是直接支持的格式,所以需要逐个写入每个字符串。
```cpp
QDataStream out(&file);
for (const QString& str : dataList) {
out << str;
}
out.device()->seek(0); // 因为QDataStream默认写在文件末尾,这里需要移动回开始位置
```
4. 最后,记得关闭文件。
```cpp
file.close();
```
如果你想要在写入文件后能方便地再次读取这个列表,你可以在文件开头加上一个特定的标识符(比如`#QStringList:`),然后在读取时检查这个标识符,再解析内容。
QString按照GBK的字符集存储到文件
可以使用QTextCodec将QString转换为GBK编码格式的QByteArray,然后再将QByteArray写入文件。具体实现代码如下:
```c++
// 打开文件
QFile file("file.txt");
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
return;
// 创建GBK编码格式的QTextCodec
QTextCodec *codec = QTextCodec::codecForName("GBK");
// 将QString转换为GBK编码格式的QByteArray
QString str = "中文";
QByteArray data = codec->fromUnicode(str);
// 将QByteArray写入文件
file.write(data);
// 关闭文件
file.close();
```
注意:如果要在Windows系统中打开写入的文件,需要在打开文件时指定文件的编码格式为GBK,否则中文会显示乱码。可以使用记事本打开文件并选择“ANSI”编码格式打开即可。
阅读全文