Java代码
1.import java.io.*;
2./*
3. * 1、流是字节序列的抽象概念
4. * 2、文件时数据的静态存储形式,而流是指数据传输时的形态
5. * 3、java的流分两类:节点流类和过滤流类(处理流类)
6. * 4、InputStream 和OutputStream 都是用来处理字节的 用来处理二进制格式的文件
7. * 5、Reader 和Writer 是所有字符流来的抽象基类,用于简化对字符串的输入输出编程,即用于读写文本数据
8. * 6、二进制文件和文本文件的区别:文本文件时二进制文件的特例
9. * 7、本程序目的是 用FileOutputStream类想文件中写入一个字符串,然后用FileInputStream读出写入的内容
10. * 8、或是用FileWriter类向文件中写入一个字符串,然后用FileReader读出写入的内容
11. */
12.public class FileStream {
13. public static void main(String args[]) throws IOException{
14. FileOutputStream fos = new FileOutputStream("hello.txt");
15. fos.write("www.baidu.com".getBytes());
16. //把字符串的内容写入到文件中 但write方法不支持直接写入字符串的 所以获得字符串的字节数组 并把回字节数组的所有内容写入到文件中
17. //write方法可以写入一个字节 或者一个字节数组
18. fos.close();
19. //此处如果fos.close方法也可以 程序会自动的调用flush刷新方法 将数据写入到文件当中
20. //但是 如果调用write(int byte)方法不会自动调用flush刷新方法 将数据写入到文件当中
21. //write(byte [] buf)方法会自动的调用flush方法
22.
23. File file = new File("hello.txt");
24. byte buf []= new byte[1024];
25. FileInputStream fis = new FileInputStream(file);
26. int len = fis.read(buf);
27. System.out.println(new String(buf,0,len));
28. fis.close();
29.
30. //以下用FileWriter 和FileReader 处理文件
31. FileWriter fw = new FileWriter("hell.txt");
32. fw.write("hello world 世界");
33. //此时的write的方法是将数据写入到缓冲区当中了,并没有真的完完整整的写入到磁盘当中
34. fw.close();
35. //此处必须调用close方法才能将数据刷新到文件或者磁盘当中 此write(String s)方法不会自动的调用flush方法
36. FileReader fr = new FileReader("hell.txt");
37. char charBuf [] = new char[1024];
38. // 字符数组
39. int le = fr.read(charBuf);
40. //如果 le=-1,那么程序会抛出 String index out of range:-1 越界的错误,说明没有从文件中读取到内容或者是没有写入到文件中内容
41. System.out.println(new String(charBuf,0,le));
42. fr.close();
43.
44.
45.
46. }
47.
48.}
|