Java之I/O流(第2部分)

1. 节点类类型:

  

2. 访问文件:

Demo_1:

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class Test {
	public static void main(String[] args) {
		int b = 0;
		long num = 0;
		FileInputStream in = null;
		try{
			in = new FileInputStream("E:/eclipse projiect/data.txt");
		}catch(FileNotFoundException e){
			System.out.println("指定文件不存在");
			System.exit(-1);
		}
		try {
			while((b = in.read()) != -1){
				System.out.print((char)b +" ");
				num++;
				if(num/5 == 0){
					System.out.println();
				}
			}
			in.close();
			System.out.println("一共读取了多少个字节:"+num); //该方法不认识字符 
		} catch (IOException e) {
			System.out.println("指定文件读取错误");
			System.exit(-1);
		}
	}
}

 运行结果:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ± ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? · ? ? ? ? ? ? ± ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? × ? ? ¤ ? ? · á ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ú ? ? ? ì ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ¤ ? ? ? ? ? ? ? ? ? ? ? ü ? ? ? ? ? ? ? ú ? ? ? ? ? ó ? ? ? ú × ? ? ? ? è ? ? ? ? ? ? ? ì ? ? ? ? ? ?  一共读取了多少个字节:894

Demo_2:

class Test{
	public static void main(String[] args) {
		int b = 0;
		int c = 0;
		FileInputStream in = null;
		FileOutputStream out = null;
		try {
			in = new FileInputStream("E:/eclipse projiect/data.txt");
			out = new FileOutputStream("E:/eclipse projiect/data1.txt"); // FileOutputStream 如果没有这个文件,自动的会帮你建一个
			try {
				while((b = in.read()) != -1){
					out.write(b);
				}
				in.close();
				out.close();
			} catch (IOException e) {
				System.out.println("文件复制错误");
				System.exit(-1);
			}
		} catch (FileNotFoundException e) {
			System.out.println("指定文件不存在");
			System.exit(-1);
		}
		System.out.println("文件复制成功");
	}
}

  运行结果:文件复制成功

Demo_3:

class Test {
	public static void main(String[] args) {
		FileReader fr = null;
		int c = 0;
		int len = 0;
		try {
			fr = new FileReader("E:/eclipse projiect/data2.txt");
			while((c = fr.read()) != -1){ // 一个字符一个字符的读
				System.out.print((char)c);
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch(IOException e){
			e.printStackTrace();
		}
	}
}

 运行结果:

凤兮凤兮归故乡,遨游四海求其凰
三尺长剑,斩不尽相思情缠
邂逅你,是生生世世的宿命
长歌当哭,为君仗剑试天下.
永生不过是场幻梦,唯吾所爱不朽
觅得苍天,踏破碧落黄泉
何以缘起,何以缘灭,
当以剑歌问之
直至地老天荒,独剩你我
剑之所去,心之所往
有凤(后面两字听不清,不确定) 阵亡.我买醉或为你买醉(不确定)

 Demo_4:

import java.io.*;
class Test {
	public static void main(String[] args) {
		FileWriter fw = null;
		try {
			fw = new FileWriter("E:/eclipse projiect/data3.txt"); // 如果这个文件不存在,它会帮我们建一个
			for(int c=0;c<5000;c++){
				fw.write((char)c); // 将这个字符写进去,char 2 个字节,最大到25536.相当于Unicode把大多数国家的字符都写进去了.
			}                // char 2 个字节,代表了全世界大多数国家的文字
			fw.close();
		} catch (Exception e) {
			System.out.println("文件写入错误");
			System.exit(-1);
		}
		System.out.println("文件写入成功");
	}
}

 运行结果:文件写入成功

data3.txt 文件中的内容为:  

!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~????????????????????????????????????¤??§¨???????°±?????·???????????????????????????????×????????àá??????èéê?ìí????òó???÷?ùú?ü????ā?????????????????ē???????ě???????????????ī????????????????????????ń???ň????ō?????????????????????????????ū??????????????????????????????????????????????????????????????????????????????????????????????????ǎ?ǐ?ǒ?ǔ?ǖ?ǘ?ǚ?ǜ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ɑ???????????????ɡ?????????????????????????????????????????????????????????????????????????????????????????????????????ˇ?ˉˊˋ?????????????˙?????????????????????????????????????????????????????????????????????????????????????????????????????????????ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ?ΣΤΥΦΧΨΩ???????αβγδεζηθικλμνξοπρ?στυφχψω???????????????????????????????????????????????????????Ё??????????????АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя?ё??????????
// 其中部分表示为?,是因为Eclipse显示的问题

原文地址:https://www.cnblogs.com/bosongokay/p/6783176.html