qt中保存内容到文件为啥要输出
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt中保存内容到文件为啥要输出相关的知识,希望对你有一定的参考价值。
qt中保存内容到文件为什么要输出,QTextStream out(&file);//输出
而读取文件内容时却要输入, QTextStream in(&file);//输入
读取文件内容到QTextStream对象时,数据流是流"入"QTextStream对象,所以是输入。
从QTextStream对象保存内容到文件时,数据流是流"出"QTextStream对象,所以是输出。 参考技术A 这与命名没关系!主要是看你如何操作! in<<和out<<是写入文件;in>>和out>>是写出文件!也可以调用函数append追加.还有就是还要看你打开文件的方式!就和C++打开文件差不多. 参考技术B 帮你找到了一个比较接近的,
貌似我说错了呢,out是往文件里边写入,in是读取吧,
这个类没用过,我使用的msdn也没查到相关的资料
参考资料:http://www.oschina.net/question/108295_48261
来自:求助得到的回答 参考技术B 这个是参照问题,以系统为中心(假设系统就是一个CPU),那么当CPU向其他部分发送信息就叫输出,其他部分向CPU发送信息就叫输入CPU向文件输出内容 输出
CPU从文件读入内容 输入
如果以文件为中心,那就正好相反了
输入输出
输入输出
重定向
什么是重定向?
将原本要输出到屏幕上的内容,重新输入到其他设备中
为什么要学重定向
以下需求都需要重定向
# 1.输出的内容,比较重要的时候,我们想把它保存到文件中
# 2.在后台执行的程序,我不想让它输出的内容,干扰到屏幕
# 3.将定时任务的结果保存下来(备份,是否成功)
# 4.一些执行的命令,知道它有可能会有错误输出,但是不想看错误输出
# 5.执行一个命令,可能报错和正确的输出并存,类似错误日志与标准正确日志需要分别输出至不同的文件。
命令返回值(扩展)
如何判断一个命令是否执行成功?????
echo $? 命令的返回值 返回值是0,则代表上一条命令执行成功
返回值非0,则代表上一条命令执行不成功
输入与输出
文件描述符
名称 | 文件描述符 | 作用 |
---|---|---|
stdin | 0 | 标准输入 |
stdout | 1 | 标准输出 |
stderr | 2 | 错误输出 |
文件名 | 3+ |
1.stdin标准输入:我们使用键盘在终端或文件种输入内容时就是一种标准输入
2.stdout标准输出:最直观的例子,我们的电脑屏幕反馈给我们的结果,以及我们执行命令时系统在屏幕中反馈的结果也是标准输出
3.stderr错误输出:我们执行命令后的报错,比如我们使用命令时报错Permission denied(权限被拒绝),属于错误输出
#文件描述符
文件描述符,我们在运行程序或命令时,都会产生与之对应的文件描述符,产生的文件描述符也属于数据,会占据我们的内存,每一个程序至少有四个文件描述符,不论程序还是命令。
新装系统中大部分都是1024的文件描述符容量
#查看文件描述符容量命令
[xwq@ltl ~]$ ulimit -n
1024
#查看程序或命令的描述符
ll /proc/后台(pid)/fd
[xwq@ltl ~]$ ps -ef |tail -3
root 520 1 0 18:27 ? 00:00:02 /usr/bin/vmtoolsd
dbus 523 1 0 18:27 ? 00:00:00 /usr/bin/dbus-daemon --syst
root 534 1 0 18:27 ? 00:00:00 /usr/sbin/crond -n
[root@ltl ~]# ll /proc/520/fd
total 0
lr-x------ 1 root root 64 Apr 13 18:27 0 -> /dev/null
lrwx------ 1 root root 64 Apr 13 18:27 1 -> socket:[16504]
lrwx------ 1 root root 64 Apr 13 18:27 2 -> socket:[16504]
l-wx------ 1 root root 64 Apr 13 18:27 3 -> /var/log/vmware-vmsvc-root.log
lrwx------ 1 root root 64 Apr 13 18:27 4 -> anon_inode:[eventfd]
lr-x------ 1 root root 64 Apr 13 18:27 5 -> pipe:[16668]
l-wx------ 1 root root 64 Apr 13 18:27 6 -> pipe:[16668]
lrwx------ 1 root root 64 Apr 13 18:27 7 -> anon_inode:[eventfd]
lrwx------ 1 root root 64 Apr 13 18:27 8 -> socket:[17186]
#root 520 1 0 18:27 ? 00:00:02 /usr/bin/vmtoolsd 可以看到该文件的文件描述符有9个
输入输出符号
名称 | 符号 | 作用 |
---|---|---|
标准输入重定向 | <或者0< | 将符号右边的内容交给符号左边的命令 |
<<或者0<< | ||
标准输出覆盖重定向 | \\> 或者 1> | 将原本要输出在屏幕上的正确内容,覆盖到重定向的文件中 |
标准输出追加重定向 | \\>> 或者1>> | 将原本要输出在屏幕上的正确内容,追加到重定向的文件中 |
错误输出覆盖重定向 | 2> | 将原本要输出在屏幕上的错误内容,覆盖到重定向的文件中 |
错误输出追加重定向 | 2>> | 将原本要输出在屏幕上的错误内容,追加到重定向的文件中 |
输出重定向举例
## 错误输出和正确输出,同时写入同一个文件
[zls@localhost ~]$ find / -type d -name *zls* &> /tmp/a.txt
#第一种,直接将错误输出和正确输出一次性全部定向到/tmp/a.txt文件里
[zls@localhost ~]$ find / -type d -name *zls* > /tmp/a.txt 2>&1
#第二种,将错误输出与正确输出合并之后再塞进/tmp/a.txt
输入重定向
#示例相关的命令,设备
命令:dd 命令用于读取、转换并输出数据。
dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。
/dev/zero 文件,可以无限取出数据
#曾导示例
dd if=/dev/zero of=/file1.txt bs=1M count=20
#第二种命令解释
dd < /dev/zero > /filet.txt bs=1M count=20
bs:取出的数据单位
count:取出的数量
#将取出的数据给到dd命令,再由dd交给filet.txt文件
dd if=/dev/zero of=/opt/disk bs=1K count=1024
dd < /dev/zero > /filet.txt bs=1k count=1024
#与上题讲解同理,只是数据单位及数量的变化
以上是关于qt中保存内容到文件为啥要输出的主要内容,如果未能解决你的问题,请参考以下文章
Java 保存图片到数据库时,为啥要对图片进行base64编码