IO流读取

package com.IO.demo;

import java.io.FileReader;
import java.io.IOException;

public class Demo04 {
	public static void main(String[] args) throws IOException {
		//创建一个文件读取流对象,和指定名称的文件相关联。
		//要保证该文件是已经存在,如果不存在,会发生异常FileNotFoundException
		FileReader fr = new FileReader("D:/demoIO.txt");

//		调用读取流对象的read方法
//		read(),一次读一个字符,而且会自动往下读。
//				int ch1 = fr.read();
//				System.out.print((char)ch1);
//				
//				int ch2 = fr.read();
//				System.out.print(" " + (char)ch2); fr.read();返回的是int型的ASCLL码
//		
//				int ch3 = fr.read();
//				System.out.print(" " + (char)ch3);
//				
//				int ch4 = fr.read();
//				System.out.print(" " + (char)ch4);
//				
//				int ch5 = fr.read();
//				System.out.print(" " + (char)ch5);
//				
//				int ch6 = fr.read();
//				System.out.print(" " + (char)ch6);
//				
//				int ch7 = fr.read();
//				System.out.print(" " + (char)ch7);
//				
//				int ch8 = fr.read();
//				System.out.print(" " + (char)ch8);
//				
//				int ch9 = fr.read();
//				System.out.print(" " + ch9); //此处已经没有字符了,输出int型字符“-1”
				
//		while(true){
//			int ch = fr.read();
//			if(ch == -1){	//没有字符时候==-1,-1是结束标记
//				break;
//			}
//			System.out.println("ch=" + (char)ch);
//		}
		int ch = 0;
		while((ch = fr.read()) != -1){
				System.out.println((char)ch);
		}

	}
}

——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

package com.IO.demo;

import java.io.FileReader;
import java.io.IOException;

/**
 * 第二种方式:通过字符数组进行读取
 * @author Administrator
 *
 */
public class Demo05 {
	public static void main(String[] args) throws IOException {
		//电脑上D盘的demoIO.txt内容是"abcDefGh"
		FileReader fr = new FileReader("D:/demoIO.txt");
		
		//定义一个字符数组,用于存储读到的字符。
		//该read(char[])返回的是读到字符个数。
		char[] buf = new char[3];
		
		/**
		 * 因为数组的长度为3,所以每次读取流中的3个字符
		 * 当3个字符读取完之后,读下面3个字符的时候,
		 * 下面3个字符会依次替代掉上一次读取的3个字符
		 * 当最后一批没有3个字符的时候,流根据数组长度,
		 * 依旧会读取3个字符,假设只剩1个字符的时候,
		 * 该字符会替代掉数组中上一次读取的3个字符中的第1个字符,
		 * 因为只剩下1个字符用来读取了,此时的数组长度为1,
		 * 但是上次读取的3个字符后,后面两个位置上的字符还是上次遗留的字符,
		 * 没有字符将其位置替代,所以虽然此时数组的长度为1了,但是数组总共
		 * 3个长度,剩余的2个长度上遗留着上次读过的字符,也一样在这次会被
		 * 读取出来。当流中的字符全部都被读取完了,数组长度返回值为-1,
		 * 但是同样的道理,虽然没有返回数组长度了,但是数组的长度依旧为3,
		 * 上次读取后的3个字符依旧留在数组中,所以读取数组的话,依旧会读出上一次
		 * 的数组值。
		 */
		
		//abc,3
		int num1 = fr.read(buf);
		System.out.println("num1=" + num1 + "..." + new String(buf));
		
		//Def,3
		int num2 = fr.read(buf);
		System.out.println("num2=" + num2 + "..." + new String(buf));
		
		//Ghf,2
		int num3 = fr.read(buf);
		System.out.println("num3=" + num3 + "..." + new String(buf));
		
		//Ghf,-1
		int num4 = fr.read(buf);
		System.out.println("num4=" + num4 + "..." + new String(buf));
		
//		int num = 0;
//		while((num=fr.read(buf)) != -1){
//			System.out.println(new String(buf,0,num)); //String方法,从0位置开始,取num个字符。
//		}
		fr.close();
	}
}


——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

练习:

package com.IO.demo;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

//练习:读取一个.java文件,并打印在控制台上。
public class Prc01 {
	public static void main(String[] args) throws IOException {
		FileReader fr = new FileReader("D:/demoIO.txt");
		char[] buf = new char[1024];
		int num = 0;
		while((num = fr.read(buf)) != -1){
			System.out.println(new String(buf,0,num));
		}
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值