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 操作的一些基本知识的更多相关文章

  1. Java安全之Commons Collections1分析前置知识

    Java安全之Commons Collections1分析前置知识 0x00 前言 Commons Collections的利用链也被称为cc链,在学习反序列化漏洞必不可少的一个部分.Apache C ...

  2. Java Spring mvc 操作 Redis 及 Redis 集群

    本文原创,转载请注明:http://www.cnblogs.com/fengzheng/p/5941953.html 关于 Redis 集群搭建可以参考我的另一篇文章 Redis集群搭建与简单使用 R ...

  3. Java的JDBC操作

    Java的JDBC操作 [TOC] 1.JDBC入门 1.1.什么是JDBC JDBC从物理结构上来说就是java语言访问数据库的一套接口集合,本质上是java语言根数据库之间的协议.JDBC提供一组 ...

  4. Java读写文本文件操作

    package com.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; ...

  5. 第26章 java进制操作

    java进制操作 1.二进制 二进制只有0和1,逢二进一 二进制多用在计算机中,来自计算机硬件的开关闭合 2.位运算 分别讲解: 2.1.按位与 & 两位全为1,结果才为1 0&0=0 ...

  6. Java生成和操作Excel文件(转载)

    Java生成和操作Excel文件   JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该A ...

  7. java程序员需要掌握些什么知识

    java程序员需要掌握些什么知识 合格的程序员应具有实际开发能力的Java和J2EE.如今的IT企业需求量大,但人才紧缺的.企业需要大量掌握Java/JEE/Oracle/WebLogic/Websp ...

  8. Java使用Jdbc操作MySql数据库(一)

    这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...

  9. Java的大数操作分为BigInteger和BigDecimal

    Java的大数操作分为BigInteger和BigDecimal,但这两给类是分开使用的,有时候在编程的时候显得略微繁琐,现在编写了一个将二者合二为一的大数操作类. 大数操作类代码如下: 1 pack ...

随机推荐

  1. HDU 5903 Square Distance

    $dp$预处理,贪心. 因为$t$串前半部分和后半部分是一样的,所以只要构造前一半就可以了. 因为要求字典序最小,所以肯定是从第一位开始贪心选择,$a,b,c,d,...z$,一个一个尝试过去,如果发 ...

  2. CSU 1810 Reverse

    湖南省第十二届大学生计算机程序设计竞赛$H$题 规律,递推. 这种问题一看就有规律.可以按位统计对答案的贡献.即第$1$位对答案作出了多少贡献,第$2$位对答案作出了多少贡献.....累加和就是答案. ...

  3. Spring知识点总结

    1.1 什么是Spring Spring是分层的JavaSE/EE full-stack(一站式)轻量级开源框架,以IoC(Inverse of Control 反转控制)和AOP(Aspect Or ...

  4. NEUQ1038: 谭浩强C语言(第三版)习题4.8

    之前没做对的一道题,今天集中清理一下. //------------------- 很水的题,主要是 %.2lf 不能四舍五入,需要仅保留两位小数,用了丑陋的强制类型转换... //--------- ...

  5. 【卷二】网络二—TCP服务器与客户端

    经过上回简单地介绍,大家对服务器多少应该清楚一些了吧!还记得TCP: (Transmission Control Protocol) 传输控制协议? 还记得IP: (Internet Protocol ...

  6. struts2查询的数据的存放

    当我们查询数据的时候,把它存放到一个位置.以供页面显示. 1:使用***Map取代内置对象存放 public String query(){ ActionContext.getContext().pu ...

  7. maven 运行tomcatrun -Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.

      解决-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment varia ...

  8. ueditor1.4.3 在IE8下的 BUG

    ueditor1.4.3  .net 版 在IE8 下,多图片上传完成后,点击确认时报错,无法插入图片到编辑器中 原因是 ueditor.all.js 中的 24835 行 if (whitList[ ...

  9. SQLServer性能优化

    http://www.cnblogs.com/studyzy/archive/2008/11/24/1339772.html

  10. oAuth 使得第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权

    OAUTH协议为用户资源的授权提供了一个安全的.开放而又简易的标准.与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可 ...