1. 程式人生 > >java讀取txt檔案出現中文亂碼

java讀取txt檔案出現中文亂碼

在保證程式碼沒有問題的前提下,讀取txt檔案出現瞭如下亂碼。
在這裡插入圖片描述

解決方法:

1.檢視檔案程式碼的編碼方式是否是ANSI(我使用的文字編輯器為EditPlus)

在這裡插入圖片描述
在這裡插入圖片描述

2.檢視.txt檔案的編碼方式是否是ANSI

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
修改儲存,結果如下
在這裡插入圖片描述

這裡附如上讀取txt檔案的程式碼。

import java.io.*;
import java.util.Scanner;
public class ReadLine2 
{      
		//輸出本行內容及字元數
        static void readLineVarFile(String fileName, int
lineNumber) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName))); //使用緩衝區的方法將資料讀入到緩衝區中 String line = reader.readLine(); //定義行數 if (lineNumber <= 0 || lineNumber > getTotalLines(fileName)
) //確定輸入的行數是否有內容 { System.out.println("不在檔案的行數範圍之內。"); } int num = 0; while (line != null) //當行數不為空時,輸出該行內容及字元數 { if (lineNumber == ++num) { System.out.println
("第" + lineNumber + "行: " + line); } line = reader.readLine(); } reader.close(); } // 檔案內容的總行數 static int getTotalLines(String fileName) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(fileName))); ////使用緩衝區的方法將資料讀入到緩衝區中 LineNumberReader reader = new LineNumberReader(br); String s = reader.readLine(); //定義行數 int lines = 0; while (s != null) //確定行數 { lines++; s = reader.readLine(); } reader.close(); br.close(); return lines; //返回行數 } public static void main(String[] args) throws IOException { String fileName = "E:/java task/cookie reader/南渡北歸(三部曲).txt"; // 讀取檔案 int totalNo = getTotalLines(fileName); // 獲取檔案的內容的總行數 System.out.println("本文總共有:"+totalNo+ "行"); while(true) { Scanner sc=new Scanner(System.in); int lineNumber =sc.nextInt(); // 指定讀取的行號 readLineVarFile("E:/java task/cookie reader/南渡北歸(三部曲).txt", lineNumber); //讀取指定行的內容 } } }