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,此类是把输出流为字节的转换成字符流.
对于以上的类,进行了转换,那就是把流成功转换成字符了,如果要向外输入,直接用字符流输出就可以了.
1 public static void main(String[] args) throws IOException { 2 File file1=new File("d:\","a.txt"); 3 File file2=new File("d:\","b.txt"); 4 FileInputStream fs1=new FileInputStream(file1); 5 InputStreamReader f1isr=new InputStreamReader(fs1); 6 //在这里不难发现,输出字节流转换成了字符流 7 FileWriter fw2=new FileWriter(file2); 8 int contents; 9 while((contents=f1isr.read())!=-1){ 10 fw2.write(contents); 11 } 12 fs1.close(); 13 fw2.close(); 14 }
4.BufferedReader和BufferedWriter
这个是一个以行为单位,进行对行操作,对行进行输入和输出.方法有readLine()是否等于null,newLine()生成新的一行.
5.PrintStream和PrintWriter两种类
(1)PrintStream,打印输出流,是字节的输出.
(2)PrintWriter,打印输出流,是字符为单位,在读取文本文件的时候尽量使用这个.
在java平台上,这两个是没有区别的,只有在跨平台的情况下才会可能出现问题.但是二者在java平台中都是可以输出各类数据的,比如String,int,char,Obect类型.注意是object类型.
6.ObjectInputStream和ObjectOutputStream两个对象序列化,是对对象进行序列化处理
对于InputStream要进行
1 File sfile = new File("d:\", "a.txt"); 2 ObjectInputStream in = new ObjectInputStream(new FileInputStream( 3 sfile)); 4 5 try { 6 object = in.readObject();//注意要进行定义object,并对定义的object判断类型,从而进行在控制台输出. 7 if (object instanceof ArrayList) { 8 ArrayList<Student> slist=(ArrayList<Student>)object; 9 for (Student student : slist) { 10 for (Course course : student.getClist()) { 11 System.out.println(student.getId() + " " + student.getName() 12 + " " + student.getAge() + " " + course.getCourse() 13 + " " + course.getAvgScore() + " " 14 + course.getEndScore()); 15 } 16 } 17 }
对于OutputStream来说,主要的还是如何对序列进行整理到一个文件上,要用到implements Serializable接口,即对对象进行序列化
1 try { 2 File sfile = new File("d:\", "a.txt"); 3 if (!sfile.exists()) { 4 sfile.createNewFile(); 5 } 6 ObjectOutputStream out = new ObjectOutputStream( 7 new FileOutputStream(sfile)); 8 out.writeObject(slist); 9 out.close(); 10 File sfile = new File("d:\", "a.txt"); 11 ObjectInputStream in = new ObjectInputStream(new FileInputStream( 12 sfile)); 13 Object object;
7.Scanner扫描器利用,其方法有很多nextInt(),next()(此是字符串),nextdouble().其分隔符是空格,只要利用空格就可以对下一个进行输入.回车也是其分隔符