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必须是有明显的构造函数才可以,默认的构造函数是获取不到的。

你可能感兴趣的:(java编程思想)