5-Qt读取文件失败原因
刚开始准备读取当前目录下的txt文件:
QFile file(":/xuhao.txt");
或者:
QFile file("./xuhao.txt");
但是一直出错,一般就是文件放错位置了,可以用绝对路径测试下,看可以不,一般绝对路径可以,就是你放错地方了;
可以打印当前程序运行的目录对比下你的绝对路径:
QString runPath = QCoreApplication::applicationDirPath() + "/xuhao.txt";
runPath.replace(QString("/"),QString("\\"));
qDebug() << runPath;
可以读取到你的当前运行路径,对比下可以发现你的问题。
对于replace的作用是因为路径中 / 要换成 \\ 才能跑
利用获取的路径实际上可以将相对论路径转为绝对路径去访问文件,但是一般这是多余的操作,
一般直接用相对路径就比较好了。
附上一段读入每一行,读入到数组里面的代码:
void MainWindow::readFile()
{
//构造一个以data1.txt为文件名的QFile对象
QString runPath = QCoreApplication::applicationDirPath() + "/xuhao.txt";
runPath.replace(QString("/"),QString("\\")); qDebug() << runPath;
// QFile file(":/xuhao.txt");
//少了 E:\\a-qt\\build-ball3-Desktop_Qt_5_9_1_MinGW_32bit-Debug\\debug\\xuhao.txt
QFile file("./xuhao.txt");
//文件以只读方式打开 || 在读取时,将行结束符转换成 \n
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
qDebug()<< "open file failure";
return;
}
else
{
QString array;
//创建QTextStream流操作对象,与QFile对象file连接
QTextStream in(&file);
//读取所有文本
array = in.readAll();
//trimmed():移除字符串两端空白符,simplified():移除字符串两端的空白字符,
//使用单个空格字符“ ”代替字符串中出现的空白字符。
array = array.trimmed();
//qDebug()<<array;
array = array.simplified();
//qDebug()<<array; int i=0,k=0;
while(i<array.size())
{
//.at(int position):返回当前字符的位置index
name_data[k] += array.at(i);
// printf("%d: ", i);
name_data[k]=name_data[k].trimmed();
if(array.at(i) == " ")
{
k++;
}
i++;
}
}
file.close();
}
5-Qt读取文件失败原因的更多相关文章
- 用adb pull命令从android系统中读取文件失败的原因及解决办法
问题:使用adb pull命令从android系统中读取文件失败.显示:Permission denied 原因:是由于文件权限原因引起. 使用ls -l命令查看android系统中的 ...
- Qt读取文件时中文乱码问题
在默认情况下,Qt 以 Unicode 格式处理文本字符,因此,字符本身是不会有问题的.之所以出现乱码,原因在于 Qt 不知道将 Unicode 字符以何种方式显示出来. 文本文件含有简 ...
- QT 读取文件夹下所有文件(超级简单的方法,不需要QDirIterator)
之前,用标准C++写过读取文件夹.现在用QT重写代码,顺便看了下QT如何实现,还是相当简单的.主要用到QDir,详细文档可见这里 A program that lists all the files ...
- JAVA 解决 SpringBoot 本地读取文件成功,打包后读取文件失败的方法
SpringBoot 的日常开发中,我们会发现当我们使用 InputStream input = getClass.getResource(path) 读取文件或者模板时,在 ida 中运行 测试的 ...
- java分享第七天-02(读取文件)
一 读取文件 public static void main(String[] args) throws FileNotFoundException, IOException { // 建立File对 ...
- 在系统中使用read函数读取文件内容
read函数(读取文件) read函数可以读取文件.读取文件指从某一个已打开地文件中,读取一定数量地字符,然后将这些读取的字符放入某一个预存的缓冲区内,供以后使用. 使用格式如下: number = ...
- C++读取文件统计单词个数及频率
1.Github链接 GitHub链接地址https://github.com/Zzwenm/PersonProject-C2 2.PSP表格 PSP2.1 Personal Software Pro ...
- 用nodejs实现读取文件操作
//如果不是全局就得引入fs成员 const fs = require("fs"); //fs 核心模块中提供了一个 fs.readFile方法,来读取指定目录下的文件 //fs. ...
- nodejs模块——fs模块 读取文件
readFile读取文件 fs.readFile(filename,[option],callback) 方法读取文件. 参数说明: filename String 文件名 option Object ...
随机推荐
- vb 读取指定路径文件名
Private Sub ExportCostSheetData() InsertRow("") InsertRow("Run 2:Export CostingSheet= ...
- 如何在Windows中使用netsh命令进行端口转发
自Windows XP开始,Windows中就内置网络端口转发的功能.任何传入到本地端口的TCP连接(IPv4或IPv6)都可以被重定向到另一个本地端口,或远程计算机上的端口,并且系统不需要有一个专门 ...
- 5. Java中序列化的serialVersionUID作用
Java序列化是将一个对象编码成一个字节流,反序列化将字节流编码转换成一个对象. 序列化是Java中实现持久化存储的一种方法:为数据传输提供了线路级对象表示法. Java的序列化机制是通过在运行时判断 ...
- centos的安装和下载
https://blog.csdn.net/risen16/article/details/50737948
- 使用IDEA开发Activiti工作流
首先安装cativiti插件,安装成功后重启IDEA 然后在文件夹右键选择 然后就可以画图了,但是画图之后,没有连接图标怎么办呢 把鼠标放在开头的那个图标上,此时光标的形状改变了. 拖到另一个上面,连 ...
- Java中3种代理总结(示例代码见之前文章)
1.JDK静态代理 业务接口 接口的实现类 代理类,实现接口,并扩展实现类的功能 ### 2.JDK动态代理 业务接口 实现了业务接口的业务类 实现了InvocationHandler接口的handl ...
- vue常用
vue常用的路由的状态管理
- 代码报错记录-MAVEN
报错: COMPILATION ERROR : 程序包不存在. 说是找不到程序包,我的JUNIT是父项目中的,子项目是从JAVA项目转为MAVEN项目的,难道在转成MAVEN项目时对POM文件的修改有 ...
- 漫画描述HDFS工作原理
作者不详,内容浅显易懂,特拿来与大家分享.
- redis启动.停止.重启
Linux下安装 ]# wget http://download.redis.io/releases/redis-2.8.17.tar.gz ]# tar xzf redis-2.8.17.tar.g ...