流(stream)式操作读写文本
时间: 2023-08-11 10:04:08 浏览: 111
在Python中,可以使用文件对象的`readline()`和`write()`方法来实现流式操作读写文本。`readline()`方法读取文件的一行,并将光标移动到下一行开头,而`write()`方法将一个字符串写入文件。
以下是一个例子,演示如何逐行读取一个文件并将它们写入另一个文件:
```python
with open('input.txt', 'r') as input_file, open('output.txt', 'w') as output_file:
while True:
line = input_file.readline()
if not line:
break
output_file.write(line)
```
在这个例子中,我们使用`with`语句打开了两个文件,`input.txt`作为读入文件,`output.txt`作为写出文件。然后我们进入一个无限循环,每次从输入文件读取一行,如果读到文件结尾,则跳出循环。接着,我们将读取到的行写入输出文件。这样,我们就实现了流式操作读写文本。
相关问题
使用QTextStream类实现流(Stream)式操作读写文本
QTextStream类提供了一种方便的方式来读写文本数据。它可以与QIODevice及其子类一起使用,例如QFile和QTcpSocket。以下是使用QTextStream读写文本的示例:
```cpp
#include <QFile>
#include <QTextStream>
#include <QDebug>
int main()
{
QFile file("example.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
qDebug() << "Failed to open file";
return 1;
}
QTextStream in(&file);
while (!in.atEnd()) {
QString line = in.readLine();
qDebug() << line;
}
file.close();
QFile outputFile("output.txt");
if (!outputFile.open(QIODevice::WriteOnly | QIODevice::Text)) {
qDebug() << "Failed to open file";
return 1;
}
QTextStream out(&outputFile);
out << "Hello, World!" << endl;
out << "This is a sample output." << endl;
outputFile.close();
return 0;
}
```
在上面的示例中,我们首先打开一个名为example.txt的文件,并使用QTextStream从中读取每一行。我们还打开了一个名为output.txt的文件,并使用QTextStream将一些文本写入该文件。请注意,在写入文本时,我们还使用了endl,这将在输出结束时自动添加一个换行符。
QTextStream还提供了许多其他方法,例如read()和write(),用于读取和写入QString和QByteArray类型的数据。它还提供了一些格式化输出方法,例如setFieldWidth()和setPadChar(),这些方法可以帮助您以您喜欢的格式输出数据。
什么是QTextStream类的流(Stream)式操作读写
QTextStream是Qt类库中提供的一个用于文本文件读写的类。它提供了流(Stream)式操作读写文本的方法。
流式操作是一种将数据按照一定的格式进行输入输出的方法。对于QTextStream类,可以使用 << 运算符将数据输出到文件中,也可以使用 >> 运算符将文件中的数据读入到程序中。例如:
```c++
QFile file("test.txt");
if(file.open(QIODevice::ReadWrite | QIODevice::Text))
{
QTextStream stream(&file);
stream << "Hello, world!";
QString str;
stream >> str;
qDebug() << str;
file.close();
}
```
上述代码中,我们首先创建一个QFile对象,并以读写和文本模式打开文件。接着,我们创建了一个QTextStream对象,它的构造函数接受一个QIODevice对象作为参数,我们将它指定为刚刚创建的文件对象。然后,我们使用流式操作将字符串"Hello, world!"写入文件中。最后,我们使用流式操作将文件中的内容读入到一个QString对象中,并打印出来。
需要注意的是,QTextStream默认是以Unicode编码方式进行读写的,如果需要使用其他编码方式,需要调用setCodec()函数进行设置。
阅读全文