马太效应 发表于 2017-8-4 22:58:07

Java暑期学习Day31

今天是第31天,终于下了个API文档,中文的{:10_264:}

static/image/hrline/2.gif

如下代码,完成读取纯文本文档,并以字符串返回文档中所有文字的操作:

package exception;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class FileUtil {
        public static String readFile(String name){
                StringBuilder text=new StringBuilder();
                try{
                        Scanner console=new Scanner(new FileInputStream(name));
                        while(console.hasNext()){
                                text.append(console.nextLine())
                                .append('\n');
                        }
                }catch(FileNotFoundException ex){
                        ex.printStackTrace();
                }
               
      return text.toString();
}
}
其中用API查询的信息如下:
1.
-java.lang.Object
-file:///resources/inherit.gifjava.io.InputStream
    -file:///resources/inherit.gifjava.io.FileInputStream
2.
FileInputStream 从文件系统中的某个文件中获取输入字节。哪些文件可用取决于主机环境。
FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader。
3.
public FileInputStream(String name)
                throws FileNotFoundException
通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的路径名 name 指定。创建一个新 FileDescriptor 对象来表示此文件连接。

首先,如果有安全管理器,则用 name 作为参数调用其 checkRead 方法。
如果指定文件不存在,或者它是一个目录,而不是一个常规文件,抑或因为其他某些原因而无法打开进行读取,则抛出 FileNotFoundException。


4.
iterator 迭代器 迭代程序
hasNext()——这是迭代器的用法。
使用hasNext()检查序列中是否还有元素,如果仍有元素可以迭代,则返回 true。

5.
Scanner创建时可以给予InputStream实例,而FileInputStream可指定文档名来开启与读取文档内容,是InputStream的子类。
如果方法设计流程中发生异常,而设计时并没有充足的信息知道该如何处理(例如不知道链接库会用在什么环境),那么可以抛出异常,让调用方法的客户端来处理。如:

package exception;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class FileUtil {
        public static String readFile(String name)
                                       throws FileNotFoundException{
               
                StringBuilder text=new StringBuilder();
                        Scanner console=new Scanner(new FileInputStream(name));
                        while(console.hasNext()){
                                text.append(console.nextLine())
                                .append('\n');
                        }
               
      return text.toString();
}
}
6.
操作对象的过程中如果会抛出受检异常,但目前环境不足以处理异常,所以无法使用try、catch处理时,可由方法的客户端依据当时调用的环境信息进行处理。为了告诉编译系统这个事实,必须使用throws声明此方法会抛出的异常类型或父类型,编译程序才可通过编译。
throws声明部分会是API操作接口的一部分,客户端不用查看原始码,从API文件中可直接得知。













页: [1]
查看完整版本: Java暑期学习Day31