激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java字符流和字節流對文件操作的區別

Java字符流和字節流對文件操作的區別

2020-06-26 15:43Dreamlove JAVA教程

本篇文章主要介紹了Java的IO流分為字符流(Reader,Writer)和字節流(InputStream,OutputStream),字節流顧名思義字節流就是將文件的內容讀取到字節數組,對初學者很有用,有需要的朋友可以了解一下。

記得當初自己剛開始學習Java的時候,對Java的IO流這一塊特別不明白,所以寫了這篇隨筆希望能對剛開始學習Java的人有所幫助,也方便以后自己查詢。Java的IO流分為字符流(Reader,Writer)和字節流(InputStream,OutputStream),字節流顧名思義字節流就是將文件的內容讀取到字節數組,然后再輸出到另一個文件中。而字符流操作的最小單位則是字符。可以先看一下IO流的概述:

Java字符流和字節流對文件操作的區別

下面首先是通過字符流對文件進行讀取和寫入:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package lib;
 
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
 
public class Test {
  // 定義文件路徑
  File f = new File("F:\\test.txt");
  //字符流寫入的方法
  public String writeInFile() throws IOException{
    String str = "";
    String count = "";
    try {
      // 使用字符流對文件進行讀取
      BufferedReader bf = new BufferedReader(new FileReader(f));
      while (true) {
        //讀取每一行數據并將其賦值給str
        if ((count = bf.readLine()) != null) {
          str += count;
        } else {
          break;
        }
      }
      // 關閉流
      bf.close();
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    }
    return str;
  }
  //字符流讀取的方法
  public void getReader(){
    try {
      //其中true表示在原本文件內容的尾部添加,若不寫則表示清空文件后再添加內容
      PrintWriter pw=new PrintWriter(new FileWriter(f,true));
      pw.write("測試輸入字符串到文件中2");
      pw.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
  public static void main(String[] args) throws IOException {
    Test test=new Test();
    //將字符串輸入到文件中
    test.getReader();
    //讀取相對應的字符串
    String str=test.writeInFile();
    //將文件中內容在控制臺輸出
    System.out.println("文件內容為:"+str);
  }
}

上述代碼的關鍵地方都有注釋,就不再一一贅述了,主要就是在使用完流之后不要忘記關閉就好

然后是通過字節流的方式對文件進行操作,將一個文件中的內容復制到另一個文件中:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package com.file.test2;
 
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
 
public class TestFile2 {
  //使用字節流讀取并寫入文件,將一個文件復制到另一個文件中
  public static void main(String[] args) throws IOException {
    //要復制的源文件
    File f=new File("D:\\test.txt");
    //目標文件
    File f2=new File("D:\\test2.txt");
    //定義一個byte類型的數組,用于存儲讀取到的內容
    byte [] b=new byte[1024];
    int length;
    try {
      //定義讀取的流
      FileInputStream in=new FileInputStream(f);
      //定義輸出到文件的流
      FileOutputStream out=new FileOutputStream(f2);
      //將文件內容輸出到另一個文件中
      while((length=in.read(b))!=-1){
        out.write(b, 0, length);
      }
      out.close();
      in.close();
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    }
  }
}

在字節流的操作中,第13行的源文件必須存在,可以根據需要自行更改文件路徑,只需要存在即可,否則會報文件找不到的錯誤,同時若想在控制臺輸出讀取到的字節流的內容則可以在第27和28行之間加兩句代碼:in.read(b, 0, b.length);System.out.println(new String(b));

以上就是字符流和字節流的相關操作,其實代碼不難,主要是自己的理解,相同的問題每個人都會有不同的理解方式,當然,對于我們編程人員來說,除了要多思考之外還要多動手。最后希望以上內容能對大家有所幫助,也請繼續支持本站。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: av日韩在线免费观看 | 国产午夜精品一区二区三区嫩草 | 欧美精品一区二区三区在线 | 久久久日韩精品一区二区三区 | 久久久久久久久久91 | 黄色av一区二区三区 | 一级免费观看 | 精品亚洲一区二区三区 | 国产精品自拍啪啪 | 日本亚洲欧美 | 毛片一区二区三区四区 | 午夜精品成人 | 精品久久久久久久久久久αⅴ | 国产人成免费爽爽爽视频 | 久久久久99一区二区三区 | 亚洲天堂在线电影 | 美女视频免费一区二区 | 免费a级毛片大学生免费观看 | 黄色网址入口 | 性少妇videosexfreexx入片 | 国产精品久久久久久影视 | 亚洲五码在线观看视频 | 狠狠干最新网址 | 精品亚洲福利一区二区 | 免费网站看v片在线a | 午夜小电影 | 黄色免费在线视频网站 | 懂色av懂色aⅴ精彩av | 天天躁狠狠躁夜躁2020挡不住 | 夜夜夜影院 | 成人片在线播放 | 久久99久久99免费视频 | 一级黄色电影网站 | 精品国产一区二区三区在线观看 | 色网站综合 | 中文字幕在线永久 | 免费观看国产视频 | 国产一级在线观看视频 | 主人在调教室性调教女仆游戏 | 欧美成人精品一区二区 | 成人一级黄色 |