8.1 控制台输入输出

  1. public static void main(String[] args) throws IOException {
  2. String c;
  3. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  4. System.out.println("输入字符:");
  5. do {
  6. c = br.readLine();
  7. System.out.println(c);
  8. } while (c != "q");
  9. }
  10. 运行结果:
  11. 输入字符:
  12. runoob
  13. runoob
  14. run
  15. run
  16. q
  17. q

8.2 IO流

image.png

8.3 字节流

8.3.1 FileInputStream

该流用于从文件读取数据,它的对象可以用关键字 new 来创建。

  1. // 可以使用字符串类型的文件名来创建一个输入流对象来读取文件
  2. InputStream is = new FileInputStream("E://a.txt");
  3. // 也可以使用一个文件对象来创建一个输入流对象来读取文件。我们首先得使用 File() 方法来创建一个文件对象
  4. File file = new File("E://a.txt");
  5. InputStream in = new FileInputStream(file);
  6. int len = 0;
  7. while ((len = fis.read()) != -1){
  8. System.out.println(len); // 228 189 160 229 165 189
  9. }
  10. byte[] bytes = new byte[1024];
  11. int len = 0;
  12. while ((len = fis.read(bytes)) != -1){
  13. System.out.println(new String(bytes,0,len)); // 你好...
  14. }
  15. fis.close();

image.png

8.3.2 FileOutputStream

该类用来创建一个文件并向文件中写数据。如果该流在打开文件进行输出前,目标文件不存在,那么该流会创建该文件。

  1. // 使用字符串类型的文件名来创建一个输出流对象
  2. OutputStream os = new FileOutputStream("E://b.txt");
  3. // 使用一个文件对象来创建一个输出流来写文件。我们首先得使用File()方法来创建一个文件对象
  4. File file = new File("E://a.txt");
  5. OutputStream os = new FileOutputStream(file);
  6. os.write(97); // a
  7. byte[] bytes = {65,66,67,68,69};
  8. os.write(bytes); // ABCDE
  9. os.write("你好".getBytes()); // 你好
  10. os.close();

image.png

8.4 字符流

8.3.1 FileReader

  1. FileReader fr = new FileReader("E://a.txt");
  2. char[] chars = new char[1024];
  3. int len = 0;
  4. while ((len = fr.read(chars)) != -1){
  5. System.out.println(new String(chars,0,len)); // 你好...
  6. }
  7. fr.close();

8.3.2 FileWriter

  1. FileWriter fw = new FileWriter("E://a.txt");
  2. FileWriter fw = new FileWriter("E://a.txt",true); // 续写开关 true:不会创建新的文件覆盖源文件,可以续写
  3. char[] chars = {'a','b','c','d'};
  4. fw.write(chars); // abcd
  5. fw.write("你好"); // abcd你好
  6. fw.flush();
  7. fw.close();

8.3 缓冲流

  1. // 写入文件
  2. BufferedWriter out = new BufferedWriter(new FileWriter("E://runoob.txt"));
  3. out.write("菜鸟教程");
  4. out.close();
  5. // 读取文件
  6. BufferedReader br = new BufferedReader(new FileReader("E://runoob.txt"));
  7. String str;
  8. while ((str = br.readLine()) != null){
  9. System.out.println(str); // 菜鸟教程
  10. }