/**
*
*/
package api.io.readers;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
/**
* 这个类用来测试字符读取流的使用
*/
public class Test1_Reader2 {
/**
*
*/
public Test1_Reader2() {
}
/**
* 日常小黄线:The value of the local variable field is not used;
* 日常小注解:Add @SuppressWarnings 'unused' to main()/method()/field;
* 日常小注解:Add @SuppressWarnings 'deprecation' to main()/method()/field;
* 日常小注解:Add @SuppressWarnings 'resource' to main()/method()/field;
* 日常小注解:Add @SuppressWarning 'null' to main()/method()/field;
* 日常小注解:@SuppressWarnings("resource") == @SuppressWarnings({ "resource" })
* 日常小异常:Exception--API(IO)IOException--FileNotFoundException
*/
public static void main(String[] args){
//普通字符流读取文件:FileReader
//method();
//高效字符读取流:BufferedReader
method2();
}
public static void method2() {
//2、捕捉处理异常
try {
//1、创建高效读取流工具类BufferedReader对象,建立磁盘文件与程序的数据连接流动通道,把数据从磁盘文件读入程序中,并运行。注意运行前,应先关闭通道,防止资源泄露缺失。
Reader reader3;
reader3 = new BufferedReader(new FileReader("E:\\JavaDevelopmentEngineer\\java\\JDK\\Jdk1.8\\Temps\\Tmooc2002\\Workspaces\\bin\\io\\IONewFile()_2.txt"));
//4、磁盘文件已经与程序建立了链接通道,接下来对磁盘文件中的数据进行读取,经过传输通道reader3进入本程序并执行,最后打印显示读取传输效果。
// System.out.println(reader3.read());
// System.out.println(reader3.read());
// System.out.println(reader3.read());
// System.out.println(reader3.read());
// System.out.println(reader3.read());
//5、字符流读取磁盘文件数据经过通道reader3进入程序时,如若文件数据已经读完仍要读取时,返回-1
// System.out.println(reader3.read());
//6、创建一个变量,记录每读取一次文件中数据返回的内容,并打印输出显示
int i = 0;
do {
System.out.println(i);
}while((i=reader3.read()) != -1);
//3、通道中,数据读取传输完毕,关闭通道,防止程序执行时资源缺失不完整
reader3.close();
}catch(IOException e) {
e.printStackTrace();
}
}
//@SuppressWarnings({ "resource" })
public static void method(){
//1、创建Reader工具类实例化对象,通过子类InputStreamReader对象的向上转型,即多态
Reader reader;
Reader reader2;
//6、捕捉处理异常
try {
reader = new FileReader(new File("E:\\JavaDevelopmentEngineer\\java\\JDK\\Jdk1.8\\Temps\\Tmooc2002\\Workspaces\\bin\\io\\IONewFile()_2.txt"));
reader2 = new FileReader("E:\\JavaDevelopmentEngineer\\java\\JDK\\Jdk1.8\\Temps\\Tmooc2002\\Workspaces\\bin\\io\\IONewFile()_2.txt");
//3、通过创建对象,工具类对应的对抽象路径的包装,并建立的电脑磁盘与程序间的通道,从电脑磁盘,程序进行数据读取,最后打印显示
System.out.println(reader2.read());
System.out.println(reader2.read());
System.out.println(reader2.read());
System.out.println(reader2.read());
System.out.println(reader2.read());
//5、字符读取流中,当文件中没有数据可读仍读时,同样返回-1
System.out.println(reader2.read());
System.out.println(reader2.read());
//4、循环读取文件中数据的字节属性,流入程序,并打印显示
//声明一个变量,记录循环中变化着的值
int i = 0;
while((i = reader.read()) != -1) {
System.out.println(i);
}
//2、关闭数据流动传输通道,以防此次或者下一次程序执行时数据缺失泄露,不完整
reader.close();
reader2.close();
} catch (IOException e) {
e.printStackTrace();
}
}
//http://www.enjoybar.com/content/329372.html
}
彦舜原创,CSDN首发:许久不发表文章了,感觉Java基础一过,后面的诸如线程、API等,没什么需要着重的地方,都是对前面所学的Java基础更复杂的运用。所以,学好Java,基础是重中之重。所以,学好任何一门编程语言,基础是重中之重。工作尤为如此。