Java I/O 操作的一些基本知识
1.文件类:File ,也是唯一的单独的文件类.可以对文件进行操作.其方法有:exists(),delete(),isDirectory(),createNewFile(),getName(),getPath(),mkdir()创建文件夹,
2.流,先分为输入输出流,之后再分为字节和字符输入输出流.
(1)InputStream,OutputStream,是父类的输入输出流.是字节的输入输出流.主要的方法还是read(),当read()=-1的时候就是到了结尾.write是进行字节的输出.
(2)Reader,Writer,是父类的输入输出流.是字符的输入输出流.主要的方法还是read(),当read()=-1的时候就是到了结尾.write是进行字符的输出.
3.字节流转换成字符流的桥梁.
(1)InputStreamReader,此类是把输入流为字节的转换成字符流.
(2)OutputStreamWriter,此类是把输出流为字节的转换成字符流.
对于以上的类,进行了转换,那就是把流成功转换成字符了,如果要向外输入,直接用字符流输出就可以了.
public static void main(String[] args) throws IOException {
File file1=new File("d:\\","a.txt");
File file2=new File("d:\\","b.txt");
FileInputStream fs1=new FileInputStream(file1);
InputStreamReader f1isr=new InputStreamReader(fs1);
//在这里不难发现,输出字节流转换成了字符流
FileWriter fw2=new FileWriter(file2);
int contents;
while((contents=f1isr.read())!=-1){
fw2.write(contents);
}
fs1.close();
fw2.close();
}
4.BufferedReader和BufferedWriter
这个是一个以行为单位,进行对行操作,对行进行输入和输出.方法有readLine()是否等于null,newLine()生成新的一行.
5.PrintStream和PrintWriter两种类
(1)PrintStream,打印输出流,是字节的输出.
(2)PrintWriter,打印输出流,是字符为单位,在读取文本文件的时候尽量使用这个.
在java平台上,这两个是没有区别的,只有在跨平台的情况下才会可能出现问题.但是二者在java平台中都是可以输出各类数据的,比如String,int,char,Obect类型.注意是object类型.
6.ObjectInputStream和ObjectOutputStream两个对象序列化,是对对象进行序列化处理
对于InputStream要进行
File sfile = new File("d:\\", "a.txt");
ObjectInputStream in = new ObjectInputStream(new FileInputStream(
sfile));
try {
object = in.readObject();//注意要进行定义object,并对定义的object判断类型,从而进行在控制台输出.
if (object instanceof ArrayList) {
ArrayList<Student> slist=(ArrayList<Student>)object;
for (Student student : slist) {
for (Course course : student.getClist()) {
System.out.println(student.getId() + "\t" + student.getName()
+ "\t" + student.getAge() + "\t" + course.getCourse()
+ "\t" + course.getAvgScore() + "\t"
+ course.getEndScore());
}
}
}
对于OutputStream来说,主要的还是如何对序列进行整理到一个文件上,要用到implements Serializable接口,即对对象进行序列化
try {
File sfile = new File("d:\\", "a.txt");
if (!sfile.exists()) {
sfile.createNewFile();
}
ObjectOutputStream out = new ObjectOutputStream(
new FileOutputStream(sfile));
out.writeObject(slist);
out.close();
File sfile = new File("d:\\", "a.txt");
ObjectInputStream in = new ObjectInputStream(new FileInputStream(
sfile));
Object object;
7.Scanner扫描器利用,其方法有很多nextInt(),next()(此是字符串),nextdouble().其分隔符是空格,只要利用空格就可以对下一个进行输入.回车也是其分隔符
Java I/O 操作的一些基本知识的更多相关文章
- Java安全之Commons Collections1分析前置知识
Java安全之Commons Collections1分析前置知识 0x00 前言 Commons Collections的利用链也被称为cc链,在学习反序列化漏洞必不可少的一个部分.Apache C ...
- Java Spring mvc 操作 Redis 及 Redis 集群
本文原创,转载请注明:http://www.cnblogs.com/fengzheng/p/5941953.html 关于 Redis 集群搭建可以参考我的另一篇文章 Redis集群搭建与简单使用 R ...
- Java的JDBC操作
Java的JDBC操作 [TOC] 1.JDBC入门 1.1.什么是JDBC JDBC从物理结构上来说就是java语言访问数据库的一套接口集合,本质上是java语言根数据库之间的协议.JDBC提供一组 ...
- Java读写文本文件操作
package com.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; ...
- 第26章 java进制操作
java进制操作 1.二进制 二进制只有0和1,逢二进一 二进制多用在计算机中,来自计算机硬件的开关闭合 2.位运算 分别讲解: 2.1.按位与 & 两位全为1,结果才为1 0&0=0 ...
- Java生成和操作Excel文件(转载)
Java生成和操作Excel文件 JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该A ...
- java程序员需要掌握些什么知识
java程序员需要掌握些什么知识 合格的程序员应具有实际开发能力的Java和J2EE.如今的IT企业需求量大,但人才紧缺的.企业需要大量掌握Java/JEE/Oracle/WebLogic/Websp ...
- Java使用Jdbc操作MySql数据库(一)
这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...
- Java的大数操作分为BigInteger和BigDecimal
Java的大数操作分为BigInteger和BigDecimal,但这两给类是分开使用的,有时候在编程的时候显得略微繁琐,现在编写了一个将二者合二为一的大数操作类. 大数操作类代码如下: 1 pack ...
随机推荐
- AsyncHttpClient 中的重定向和 setEnableRedirects 方法异常解决
今天使用 AsyncHttpClient 开源库,遇到个很崩溃的问题: 方法 setEnableRedirects(false); 从名称上看应该是重定向开关的方法,设置为 false 后则普通请 ...
- 3-Dom
HTML DOM 对象DOM DocumentDOM ElementDOM AttributeDOM Event Document对象 每个载入浏览器的 HTML 文档都会成为 Document 对象 ...
- MFC 刷新失效的Picture控件
问题描述:如在摄像头显示时,关闭摄像头,此时Picture控件仍然显示最后一帧图像,需要刷新掉,还原Picture控件.或者重复显示两张不同大小的图片时,第二张背景有第一张图片残留. 解决方法1:(最 ...
- Scala 类和对象
Scala class: Scala 源文件中可以有很多类(class),这些类默认都是Public的,public是Scala的默认访问级别.在Scala中,声明一个未用priavate修饰的字段 ...
- sudo密码错误的解决办法
按一下Caps Lock键,如果大写灯亮了,再按一下. 然后重新输入sudo密码,尝试.
- 向量空间(Vector Spaces)
向量空间(Vector Spaces) 向量空间又称线性空间,是线性代数的中心内容和基本概念之一.在解析几何里引入向量的概念后,是许多问题的处理变得更为简洁和清晰,在此基础上的进一步抽象化,形成了与域 ...
- Node.js入门 NPM
参考一 Node入门 七天学会NodeJS Node.js v4.2.4 手册 & 文档 Node.js 教程 node.js摸石头系列 从零开始学习node.js What is ...
- autoconfig操作小结
1.添加maven配置在pom文件中 <profile> <id>prod</id> <properties> < ...
- CentOS 7.0 64位 安装TFTP
1.安装tftp软件# yum -y install tftp*2.修改配置文件 # vi /etc/xinetd.d/tftp server_args = -s /tftpboot '加-cdisa ...
- Socket 传送文件
1.传送文本文件 1.1服务端 package com; import java.io.BufferedWriter; import java.io.DataInputStream; import j ...