Java 从csv文件读取第一个元素时出错

Java 从csv文件读取第一个元素时出错,java,csv,Java,Csv,我正在尝试读取Java中的rectangle.csv文件。但是,当我读取文件并分配给字符串数组时,第一个元素与第一个元素一起读取一些垃圾值 package sample; import java.io.BufferedReader; import java.io.FileReader; import java.time.LocalDateTime; public class rectangleDemo { private static Rectangle[] rect ; p

我正在尝试读取Java中的
rectangle.csv
文件。但是,当我读取文件并分配给字符串数组时,第一个元素与第一个元素一起读取一些垃圾值

package sample;

import java.io.BufferedReader;
import java.io.FileReader;
import java.time.LocalDateTime;

public class rectangleDemo {
    private static Rectangle[] rect ;
    private static int count;
    static private  void loadFile( String filepath) 
    {
        try { // Try catch expression to catch exception
            String info=" ";
             BufferedReader reader =null;            
             reader = new BufferedReader(new FileReader(filepath));

            while ((info = reader.readLine()) != null) 
            {
                 String temp[] = info.split(",");
               //
              System.out.println(temp[0]);
              System.out.println(temp[1]);    
        }
            System.out.println("Database loaded successfully!");
            reader.close();
        }
        catch (Exception e) 
        {
            e.printStackTrace(System.out);
        }
    } 
public static void main(String[] args) {
    // TODO Auto-generated method stub
    loadFile("rectangle.txt");
}


@Tobit,此问题在读取字符时引起。因此,只要在读取文件时尝试设置正确的编码格式即可。请浏览此链接

文件“rectangle.txt”可能未采用UTF-8格式编码。这就是为什么你在阅读第一行时会得到额外的特殊字符

你可以用两种方法来解决这个问题

  • 将rectangle.txt的编码更改为UTF-8或
  • 读取文件时设置编码格式
  • 我刚刚创建了一个UTF-16文件并复制了您的问题。解决办法是,

    BufferedReader reader =null;     
    reader = new BufferedReader(new InputStreamReader(new FileInputStream(filepath),"UTF16"));
    

    请尝试打印
    信息
    以确保它符合您的期望…注意:我建议使用
    尝试使用资源
    。我建议使用csvReader读取csv文件。这应该是一个注释