鱼C论坛

 找回密码
 立即注册
查看: 2954|回复: 0

[学习笔记] Java暑期学习Day31

[复制链接]
发表于 2017-8-4 22:58:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
今天是第31天,终于下了个API文档,中文的


                               
登录/注册后可看大图


如下代码,完成读取纯文本文档,并以字符串返回文档中所有文字的操作:
  
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鱼币 +4 收起 理由
小甲鱼 + 4

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 13:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表