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 ...
随机推荐
- git clone的时候filename too long解决办法
在git bash中,运行下列命令: git config --global core.longpaths true
- LightGBM优势总结
效率和内存上的提升 1) 在训练决策树计算切分点的增益时,xgboost采用预排序,即需要对每个样本的切分位置都要计算一遍,所以时间复杂度是O(#data). 而LightGBM则是将样本离散化为直方 ...
- (转)USB中CDC-ECM的了解和配置
USB中典型类及子类: 类别 解释 子类 典型应用 IC芯片 备注 UVC 视频类 免驱USB摄像头 CDC 通讯类 RNDIS ECM(p24) 免驱USB网卡 RTL8152B EEM ..... ...
- Install hadoop on windows(non-virtual machine, such cygwin)
DownloadBefore starting make sure you have this two softwares Hadoop 2.7.1 Java – Jdk 1.7+ Extract d ...
- 【Linux_Unix系统编程】Chapter9 进程凭证
chapter9 进程凭证 每个进程都有一套用数字表示的用户ID(UID)和组ID(GID).有时也将这些ID称子为进程凭证. 1:实际用户ID和实际组ID 2:有效用户ID和有效组ID 3:保存的s ...
- Oracle内存详解之二 Library cache 库缓冲-转载
Library cache是Shared pool的一部分,它几乎是Oracle内存结构中最复杂的一部分,主要存放shared curosr(SQL)和PLSQL对象(function,procedu ...
- 哈希学习(2)—— Hashing图像检索资源
CVPR14 图像检索papers——图像检索 1. Triangulation embedding and democratic aggregation for imagesearch (Oral ...
- HTML5 Canvas ( 线段端点的样式 ) lineCap
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- leetcode349
public class Solution { public int[] Intersection(int[] nums1, int[] nums2) { var list1 = nums1.ToLi ...
- JPA和Hibernate到底是什么关系???
转自:https://www.cnblogs.com/mosoner/p/9494250.html 在学习框架的过程中,发现学的东西很多,但是感觉他们之间的联系区别都不是很了解,知道JPA可以去实现持 ...