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); //读取指定行的内容 
			}
       
        } 
}

猜你喜欢

转载自blog.csdn.net/weixin_42014622/article/details/83931123