刚开始准备读取当前目录下的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读取文件失败原因的更多相关文章

  1. 用adb pull命令从android系统中读取文件失败的原因及解决办法

    问题:使用adb pull命令从android系统中读取文件失败.显示:Permission denied   原因:是由于文件权限原因引起.       使用ls -l命令查看android系统中的 ...

  2. Qt读取文件时中文乱码问题

    在默认情况下,Qt 以 Unicode 格式处理文本字符,因此,字符本身是不会有问题的.之所以出现乱码,原因在于 Qt 不知道将 Unicode 字符以何种方式显示出来.        文本文件含有简 ...

  3. QT 读取文件夹下所有文件(超级简单的方法,不需要QDirIterator)

    之前,用标准C++写过读取文件夹.现在用QT重写代码,顺便看了下QT如何实现,还是相当简单的.主要用到QDir,详细文档可见这里 A program that lists all the files ...

  4. JAVA 解决 SpringBoot 本地读取文件成功,打包后读取文件失败的方法

    SpringBoot 的日常开发中,我们会发现当我们使用  InputStream input = getClass.getResource(path) 读取文件或者模板时,在 ida 中运行 测试的 ...

  5. java分享第七天-02(读取文件)

    一 读取文件 public static void main(String[] args) throws FileNotFoundException, IOException { // 建立File对 ...

  6. 在系统中使用read函数读取文件内容

    read函数(读取文件) read函数可以读取文件.读取文件指从某一个已打开地文件中,读取一定数量地字符,然后将这些读取的字符放入某一个预存的缓冲区内,供以后使用. 使用格式如下: number = ...

  7. C++读取文件统计单词个数及频率

    1.Github链接 GitHub链接地址https://github.com/Zzwenm/PersonProject-C2 2.PSP表格 PSP2.1 Personal Software Pro ...

  8. 用nodejs实现读取文件操作

    //如果不是全局就得引入fs成员 const fs = require("fs"); //fs 核心模块中提供了一个 fs.readFile方法,来读取指定目录下的文件 //fs. ...

  9. nodejs模块——fs模块 读取文件

    readFile读取文件 fs.readFile(filename,[option],callback) 方法读取文件. 参数说明: filename String 文件名 option Object ...

随机推荐

  1. Python 实现双向链表(图解)

    原文:https://blog.csdn.net/qq490691606/article/details/49948263 git 路径 https://github.com/wangpanjun/d ...

  2. var与dynamic

    var与dynamic 如果你用MVC写过程序,那么你应该知道ViewBag这个用于前后台的数据传递工具,那么你是否对ViewBag的用法感到过疑惑呢? ViewBag.Mode1l=new obje ...

  3. 代码生成器 CodeSmith 的使用(五)

    在上一篇的版本中,我们使数据库中的单个表 生成 PetaPoco 构架下的 ORM 映射,这次呢,要使数据库中的所有的表 生成 PetaPoco 构架下的 ORM 映射. 首先来看完整的 Camel ...

  4. sqlserver操作命令

    启动命令:Net Start MSSqlServer 暂停命令:Net Pause MSSqlServer 重新启动暂停的命令:Net Continue MSSqlServer 停止命令:Net st ...

  5. 温故而知新-PHP文件操作函数

    1 文件操作流程 打开文件->读取或者写入文件->关闭文件 fopen->fread,fwrite->fclose fopen可以打开ftp或者http协议的文件,前提示对方支 ...

  6. Xeon Phi 编程备忘

    ▶ 闲鱼的 Xeon Phi 3120A 配办公室的新 Xeon 服务器,记录一下环境安装过程. ● 原本尝试搭 Ubuntu 服务器,参考[https://software.intel.com/en ...

  7. 完整版openlayer的例子及中文注释(完整中文版)

    //@sourceURL=PersonLocation.jsvar window_temp = { onbeforeunload: null, DEBUG_MODE: false, MAPLIST: ...

  8. 打印机 KX-MB788CN 佳能

    打印机 KX-MB788CN http://panasonic.cn/oa/help/download.asp?type=drivers&pid=1066 佳能打印机 腾彩 PIXMA MP2 ...

  9. AJAX服务器返回数据 连接数据库查询数据

    getcustomer.asp" 中的源代码负责对数据库进行查询,然后用 HTML 表格返回结果: <% response.expires=-1 sql="SELECT * ...

  10. WMI 连接远程计算机并进行局域网进程扫描

    On Error Resume Next Dim myArray(231) myArray(0)="smss.exe"myArray(1)="csrss.exe" ...