这一篇讲讲java路径,及字符流和字节流
来源:互联网 发布:sql语句删除查询结果 编辑:程序博客网 时间:2024/05/16 07:13
(一)路径问题
首先java中File file = new File(Absolute_path);其中Absolute_path都是需要真实路径的,这样才可以获得一个File对象,否则报错。如“C:\Users\王小剑\Desktop\.....”这个就是真实路径,但是本着java的可移植性精神,我们在自己的项目中坚决反对使用真实路径。那么讲讲如何使用相对路径来代替真实路径。讲两种情况:
(1)web项目中
servlet通过相对路径获取文件真实路径如下
request.getSession().getServletContext().getRealPath(Relative_path);其中
Relative_path即相对路径,考虑web项目的目录结构
根目录Root---
css---
Css文件
Js---
Js文件
META-INF---
一些配置文件
WEB-INF---
classes---
Java.class
set.properties
Lib---
web.xml
此处我们若要获得set.properties文件的File对象,那么写法如下
File file = new File(request.getSession().getServletContext().getRealPath(“/WEB-INF/classes/set.properties”));
(2)javabean中如下链接此处不再赘述
http://blog.sina.com.cn/s/blog_4b5bc0110100g22w.html
补充一句:类名.class.getResource("/");获得的并不是标准的目录结构,而是获得了一个URL对象,要获得标准目录路径需要使用:
类名.class.getResource("/").toURL.getpath();
(二)字符问题(此处只讲读取文件中的字符,写入与之对应)
我们读取文件一般分为字节流和字符流
字节流用于读取8位字节的数据,而字符流用于读取16位字节的数据,简单的说就是字符流可以读取中文。
字节流基类为InoutStream、OutputStream。
字符流基类为Reader、Writer。
另外一个比较常用的东西是转换流,InputStreamReader类将字节流转换为字符流,
如下:
InputStreamReader in = new InputStreamReader(InoutStream);
这样子就将一个字节流转换为了字符流。
注意一件事情,就是虽然字符流可以读取中文,但是并不一定读出来的就是中文,为什么呢?
原因在于文件本身的编码格式,如果文件本身编码格式不是gbk,或者utf-8,那么就
算你使用字符流读取文件也读取不到中文。所以要读出中文需要两个条件,一,字符流、二
文件是gbk或者utf-8编码格式。
最后送大家一个大杀器,无视文件自身编码格式:
InputStreamReader in = new InputStreamReader(new FileInputStream(path), "UTF-8");
这一句代码虽然自由短短的一句,但是却需要上述所有的姿势,
包括
path路径,
字节流new FileInputStream(path) ,
转换流new InputStreamReader ,
字符流InputStreamReader in,
设置读取文件编码格式"UTF-8"- 这一篇讲讲java路径,及字符流和字节流
- Java的字符流和字节流
- java字节流和字符流
- java字节流和字符流
- java字节流和字符流
- Java字节流和字符流
- java字节流和字符流
- java 字节流和字符流
- Java的字符流和字节流
- java字符流和字节流
- Java IO字符流和字节流
- JAVA 字节流和字符流
- java中字节流和字符流
- Java字节流和字符流
- java字符流和字节流
- Java字节流和字符流实例
- java的字节流和字符流
- java 字节流和字符流
- 1/0信封——数据链路层,ARP及RARP
- jexus安装手记
- 文章标题
- RxJava阅读推荐
- JSP+Servlet+JavaBean
- 这一篇讲讲java路径,及字符流和字节流
- 10 var重要性
- Python学习笔记——函数式编程
- iOS 9控制界面旋转
- 环境变量
- Eclipse自定义设置
- 解迷宫问题的Java实现
- Redis for Linux安装手记
- 手机自动化测试(9)--抓包手机数据