在开发中,我们可能经常会碰到一个系统找不到指定路径的IO异常。今天我们就来看看,java中的路径究竟是哪个路径。先看一段代码:

packagecom.cloud.test;

importjava.io.File;

importjava.io.IOException;

publicclassTestPath {

publicstaticvoidmain(String[] args) {

File file = newFile("a.txt");

if(!file.exists()){

try{

file.createNewFile();

} catch(IOException e) {

e.printStackTrace();

}

}

}

}

运行会发现,我们的a.txt新建到了工程目录下:

这里的参数a.txt,其实就是指相对路径下的a.txt,这里的相对路径,就是指相对于工程根目录来说的路径,比如我们稍微改下程序:

packagecom.cloud.test;

importjava.io.File;

importjava.io.IOException;

publicclassTestPath {

publicstaticvoidmain(String[] args) {

File file = newFile("src/com/b.txt");

if(!file.exists()){

try{

file.createNewFile();

} catch(IOException e) {

e.printStackTrace();

}

}

}

}

运行可以发现,我们在src下的com目录下,又新建了一个b.txt文件

以上两个程序中,使用的都是相对路径,这里的相对路径,是相对于工程根目录而言的,所以这里的src前面一定不能有"/",或者就会报系统找不到指定路径的IO异常。

需要说明的是,以上程序在eclipse等开发工具中是没有问题的,但是如果我们用控制台运行的话,就会报我们我们说的系统找不到指定路径的IO异常

这里,我们最好使用绝对路径。

所谓绝对路径,也即指文件的物理路径,在linux中是指以"/"开头的路径,在windows中,也就是盘符开头的路径(其实也是"/"开头),比如:"F:\java",所以这里我们可以再F盘的java目录下新建一个c.txt文件,当然这里的"\"需要转义,或者会报语法错误。

packagecom.cloud.test;

importjava.io.File;

importjava.io.IOException;

publicclassTestPath {

publicstaticvoidmain(String[] args) {

File file = newFile("F:\\java\\c.txt");

if(!file.exists()){

try{

file.createNewFile();

} catch(IOException e) {

e.printStackTrace();

}

}

}

}

运行可以看到,在F盘的java目录下,新建了c.txt文件。

但是现在还有一个问题,我们按照上面所说的方式可以把程序新建的文件创建在在F盘java目录下,但是我如果要读取文件呢,这里不一定每个用户都会在指定位置新建指定文件,所以,我们的资源文件一般都是在项目工程中,我们可以通过下面这种方式读取:

packagecom.cloud.test;

importjava.io.File;

publicclassTestPath {

publicstaticvoidmain(String[] args){

File file = newFile(TestPath.class.getResource("/com/b.txt").getFile());

System.out.println(TestPath.class.getResource("/").getFile());

System.out.println(TestPath.class.getResource("/com/b.txt").getFile());

System.out.println(file.getPath());

}

}

这里我们使用TestPath.class.getResource,获取到的是类TestPath的绝对路径,注意这里必须得有"/",并且参数是从包名开始的(而不是src)。程序运行输出如下:

可以看到,通过这种方式,就不会再报系统找不到指定路径问题了,赶紧试试吧。

java 系统找不到路径_java IOException:系统找不到指定的路径相关推荐

  1. java无法加载主类_java运行显示“找不到或无法加载主类”!

    java运行显示"找不到或无法加载主类"!一般都自然想到是环境没配置好.但是 也可能是,绝对路径的问题. 今天一个不会java的朋友也不知道从哪整了一个java文件让我帮忙运行一下 ...

  2. java读取文件 路径_Java中的获取文件的物理绝对路径,和读取文件

    获取文件的绝对路径,读取该文件 一.文件目录打印图 下面的文件目录图,是项目中文件的位置信息:下面的例子是按照这个图来演示的. . |-- java | |-- ibard | | |-- demo1 ...

  3. java找不到符号_java编译时找不到符号,怎么处理

    已采纳 java编译时提示找不到符号的解决方式如下: 方法一: 进入d:/web/wsh下: javac a.java 然后退出wsh目录即进入d:/wsh下 javac wsh/b.java即可编译 ...

  4. java 获取ftp 文件路径_java在浏览器上获取FTP读文件路径

    展开全部 问一下,你是62616964757a686964616fe4b893e5b19e31333337623437想做ftp上传下载么? 首先你需要安装一个ftp服务端程序,启动起来,然后下载一个 ...

  5. java编译找不到文件_java报错找不到文件解决方法

    刚开始编写java代码时,肯定会遇到各种各样的bug,当然对于初学者这也是能理解的,首先来说一个比较常见的错误,如下: 一般编写新的程序时,都是从Hello,World开始的,比如在DOS上运行jav ...

  6. java表单自动绑定数据_java工作流系统表单自动 获取数据

    关键词:工作流快速开发平台  工作流流设计  业务流程管理   asp.net 开源工作流  bpm工作流系统  java工作流主流框架  自定义工作流引擎 表单设计器  流程设计器 什么是数据自动获 ...

  7. java 获取ftp路径_Java Source 根据输入 ftp 地址 账号 密码 路径 读取提供路径下的文件...

    参考上面的: 引用jar包  ganymed-ssh2-build210.jar jar 包放在   $ORACLE_HOME/sqlj/lib  执行loadjava命令 加载jar包 路径下 执行 ...

  8. java登录注册抽奖完整代码_Java抽奖系统(附完整代码)

    完整代码import java.util.Scanner;import java.util.ArrayList;import java.io.*;import java.util.StringToke ...

  9. java 错误 找不到符号_Java错误:找不到符号,也找不到原因

    错误: error: cannot find symbol 出现的内容不起作用: 如果我写:" InvoerVakhandler扩展了boven",则该错误消失了,但是随后我得到了 ...

  10. java 判断ftp文件是否存在_java如何检验ftp服务器中指定文件是否存在

    详细内容 项目工作中,需要检验ftp服务器中指定文件是否存在,在网上查阅了相关资料,可以通过ftpClient类进行实现. 免费学习视频教程分享:java课程 具体实现代码:import org.ap ...

最新文章

  1. lamp下mysql安全加固
  2. linux下的strerror和perror
  3. Tesseract-OCR 字符识别-样书训练
  4. 谈谈 Python 程序的运行原理
  5. linux container 原理,容器概念与Linux Container原理
  6. 美团骑手检测出虚假定位_在虚假信息活动中检测协调
  7. 我们应该学习什么 java、C#还是C++(VC)
  8. 保镖机器人作文_关于机器人作文400字
  9. 有了这个框架,平台开发谁还手敲代码?
  10. 中雅图帕尼尼_凝聚意大利足球50年辉煌 中雅图引进帕尼尼意甲球星贴
  11. 百度之星资格赛1003:度度熊与邪恶大魔王
  12. 21-微信小程序商城 会员首页(微信小程序商城开发、小程序毕业设计、小程序源代码)(黄菊华-微信小程序开发教程)
  13. dedecms采集经验
  14. 矩阵理论——Smith标准型的学习
  15. 2020年,程序员如何优雅地赚更多的钱?
  16. java log viewer,LogViewer - 方便的日志查看工具
  17. 微信小程序实现音乐搜索页面
  18. 已故女孩在微博“复生”追星,你的数据资产谁说了算?
  19. Kafka 安装、使用
  20. 第二天 05-安装win7系统与远程桌面开启

热门文章

  1. 解决依赖包引入后重复问题Duplicate zip entry
  2. 单片机花灯开关控制器C语言代码,以51单片机为核心的LED彩灯控制器设计
  3. 微软私有云系列 ----SQL 云部署
  4. python——txt文本处理
  5. 学习《华为基本法》(大结局):法的修订与接班人
  6. TranslateAnimation 使用详解
  7. HTML关闭网页弹出窗口代码
  8. c语言课程火车售票报告,C语言课程设计报告书火车票务管理系统.doc
  9. 卡刷su+android7,supersu最新版卡刷包
  10. et99php,加密锁/加密狗ET199(包含网络锁功能)