java编程思想读书笔记(三)

1、java io

主要有:字节数组、string对象,管道,文件,其他

java的outputstream是写文件的拥有write方法,inputstream是读文件的,拥有read方法。

管道和Linux重的管道的完全不同,Linux是一个文件,java用的是内存,所以java提供的标准库是不能进行有名管道操作的。

2、File类

file能够新建一个文件,也能够新建一个目录。

1         File f = new File("/111.txt");
2         f.mkdir();  //新建目录
3         try{
4             f.createNewFile();   //新建文件,需要try catch
5         }
6         catch (Exception e){
7 
8         }

File类还有很多方法,可以获取文件的路径,修改名字等等

3、读写一个文件

 1 try { 
 2         DataOutputStream out2 = 
 3           new DataOutputStream( 
 4             new BufferedOutputStream( 
 5               new FileOutputStream("Data.txt"))); 
 6         out2.writeBytes( 
 7           "Here's the value of pi: \n"); 
 8         out2.writeDouble(3.14159); 
 9         out2.close(); 
10         DataInputStream in5 = 
11           new DataInputStream( 
12             new BufferedInputStream( 
13               new FileInputStream("Data.txt"))); 
14         System.out.println(in5.readLine()); 
15         System.out.println(in5.readDouble()); 
16       } catch(EOFException e) { 
17         System.out.println( 
18           "End of stream encountered"); 
19       }

这个创建一个带缓存的文件写入类,当然单纯的使用FileOutputStream也可以买足我们的要求。

需要注意的是使用完成后一定要调用close方法否则不会写入到文件中。

3、RTTI,反射

Class类:该类的forname方法可以通过一个类的名字获取一个类的句柄。

获取到该类的句柄以后可以使用该剧并获取该类的类型等操作。

1         try{
2             Class cc = Class.forName("BBB");
3             BBB.class.isInstance(cc);//这个写法比较诡异,和C#完全想法
4             String str = cc.getName();
5             System.out.println(str);
6         }
7         catch (Exception e){
8 
9         }

4、方法提取

可以提取类的方法和构造函数。

 1         try{
 2             Class cc = Class.forName("BBB");
 3             BBB.class.isInstance(cc);//这个写法比较诡异,和C#完全想法
 4             Constructor c1 = cc.getConstructor();
 5             String str = cc.getName();
 6             System.out.println(str);
 7         }
 8         catch (Exception e){
 9 
10         }

重要的是,getConstructor必须是有明显的构造函数才可以,默认的构造函数是获取不到的。

原文地址:https://www.cnblogs.com/HighFun/p/2770732.html