java讀取txt檔案出現中文亂碼
阿新 • • 發佈:2019-01-14
在保證程式碼沒有問題的前提下,讀取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); //讀取指定行的內容
}
}
}