1、首先说下linux下的文件分隔符问题,win下是\,如c:\abc\efg.txt这样可以,但linux下都是/,如/usr/local/abc.txt。如果路径不对,也会找不到文件!
2、如果路径中带中文的文件夹,或名字,用new File(url);用函数file.exists()会返回false,刚开始我还以为我的路径要转编码,于是试了各种转编码,iso-8859-1,utf-8,gbk,gb2312。。。都转了,都没用。我代码是在win上编译的,在linux下运行的,发现在win下用System.getProperty("file.encoding")得到的是gbk,但在linux下是iso-8859-1。在代码中转编码看来是没用的了,于是想到改操作系统的文件系统编码,于是:
vi /etc/sysconfig/i18n文件,改为LANG="zh_CN.GBK",我试了,改为utf-8也没用,中文乱码,只有改为gbk,改完后再不重启的情况下,使配置生效:source /etc/sysconfig/i18n,结果就可以了,可以正常操作了!
其实这个操作都是临时的,编码也只是零时改了,我用SecureCRT工具,退出会话,再进,编码又回到以前去了,,重启了,感觉好像也没效果,于是,没办法, vi /etc/profile,在文件末尾加上
export LANG="zh_CN.GBK"
export LC_ALL="zh_CN.GBK"
这次感觉不要重启就可以了,编码正常改了,为gbk
http://blog.sina.com.cn/s/blog_6f7d179e0101897j.html
1、首先说下linux下的文件分隔符问题,win下是\,如c:\abc\efg.txt这样可以,但linux下都是/,如/usr/local/abc.txt。如果路径不对,也会找不到文件!2、如果路径中带中文的文件夹,或名字,用new File(url);用函数file.exists()会返回false,刚开始我还以为我的路径要转编码,于是试了各种转编码,iso-8859-1,utf-8,gbk...
File
file
=
new
File
(String pathName);
1.2 分隔符
在Windows系统中使用反斜杠 ‘’ 或者斜杠 ‘/’来当作
路径
的分隔符,但是使用反斜杠需要注意: 单个反斜杠代表转义字符,所以在使用反斜杠充当
路径
的分隔符时需要成对出现。
File
file
1 =
new
File
("E:\\aaa\\1.txt");
File
file
2 =
new
File
("E:/aaa/1.txt");
在
Linux
,Unix,macOS中,使用斜杠 ‘/’ 来作为
路径
的分隔符。
new
File
InputStream(“xxx”)
找
不到
文件
// System.out.println(
new
File
(".").getAbsolutePath());
找到
当前代码所在位置的absolute(绝对)
路径
将要
找
的xxx
文件
放在这个
文件
夹下就可以
找到
https://blog.csdn.net/jiadebin890724/article/details/74...
之前在windows上进行测试的时候,测试
中文
路径
的时候不会存在
问题
,后续将程序部署到
linux
后,再采用
中文
的方式进行
文件
读取测试,发现
file
.exists() 会返回false,
实际上
路径
是没有错误的,一直在查
找
原因,想一想可能是
文件
编码的
问题
,window和
linux
上
文件
的编码是不一致的,所以顺着这个方向查
找
,发现也有同学遇到了同样
的
问题
,通过设置
linux
的编码格式来进行
解决
。
vi /etc/pro
file
,在
文件
末尾加上
export LANG="zh_CN.GBK"
expor
File
file
=
new
File
("Object.txt");
File
InputStream input =
new
File
InputStream(
file
);
这里使用空
文件
创立
文件
字节输入流时,eclipse抛出
找
不到
指定
文件
的异常。
经过测试,
new
File
语句创建
文件
时,只能创建一个
文件
对象,而
不能
创建
文件
,因此使用exists()判断时,提示
文件
解决
Linux
中文
名
文件
下载
找
不到
路径
(
java
.io.
File
NotFoundException: ***(No such
file
or directory))
问题
描述
以前写过一个
文件
上传下载的项目,在本地测试没有
问题
,但最近在部署到
Linux
服务器实际应用发现,当
文件
名为
中文
时,会报
java
.io.
File
NotFoundException: ***(No such
file
or directory的异常,
文件
下载后是一个空
文件
查阅资料发现,项目本身没有
问题
,
问题
出在本地主机(我的是Windows10)和
Linux
操作系统的编码不同
具体的
文件
...
1. 创建一个
File
对象,指定
Linux
文件
的
路径
。
例如,如果要获取
Linux
系统中的
文件
“/home/user/test.txt”的
路径
,可以使用以下代码:
File
file
=
new
File
("/home/user/test.txt");
2. 调用
File
对象的getAbsolutePath()方法,获取
文件
的绝对
路径
。
例如,可以使用以下代码获取
文件
的绝对
路径
:
String path =
file
.getAbsolutePath();
3. 如果需要获取
文件
所在的目录
路径
,可以调用
File
对象的getParent()方法。
例如,可以使用以下代码获取
文件
所在的目录
路径
:
String dirPath =
file
.getParent();