Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.NumberFormatException:对于输入字符串:";4࿽⌷;3⌷࿽;9࿽⌷࿽;8⌷࿽;9⌷&引用;位于sun.misc.FloatingDecimal.readJavaFormatString_Java_Filereader - Fatal编程技术网

java.lang.NumberFormatException:对于输入字符串:";4࿽⌷;3⌷࿽;9࿽⌷࿽;8⌷࿽;9⌷&引用;位于sun.misc.FloatingDecimal.readJavaFormatString

java.lang.NumberFormatException:对于输入字符串:";4࿽⌷;3⌷࿽;9࿽⌷࿽;8⌷࿽;9⌷&引用;位于sun.misc.FloatingDecimal.readJavaFormatString,java,filereader,Java,Filereader,我在读取csv文件时遇到问题,该文件包含的数字格式为。。。。。。。。。。。。。。。。。。。。。。。。。。这些是随机生成的双精度(坐标),由另一个程序作为字符串写入文件 下面是我用来读取文件并解析坐标的代码部分: private void populateData() { for (int i = 0; i < this.data[0].length; i++) { try { BufferedReader br = new Buff

我在读取csv文件时遇到问题,该文件包含的数字格式为
。。。。。。。。。。。。。。。。。。。。。。。。。。
这些是随机生成的双精度(坐标),由另一个程序作为字符串写入文件

下面是我用来读取文件并解析坐标的代码部分:

    private void populateData() {

    for (int i = 0; i < this.data[0].length; i++) {
        try {
            BufferedReader br = new BufferedReader(new FileReader("Sample.csv"));
            while (br.readLine() != null) {
                String[] split = br.readLine().split(",");
                this.data[0][i] = Float.parseFloat(split[0].trim());
                this.data[1][i] =Float.parseFloat(split[1].trim());
            }
        } catch (FileNotFoundException ex) {
            Logger.getLogger(FastScatterPlotDemo.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(FastScatterPlotDemo.class.getName()).log(Level.SEVERE, null, ex);
        }


    }

}
private void populateData(){
对于(int i=0;i
这给了我一个奇怪的例外

Exception in thread "main" java.lang.NumberFormatException: For input string: "4⌷�3⌷�9⌷�.⌷�8⌷�9⌷"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1222)
at java.lang.Float.parseFloat(Float.java:422)
at lab05b_Task2.FastScatterPlotDemo.populateData(FastScatterPlotDemo.java:86)
at lab05b_Task2.FastScatterPlotDemo.<init>(FastScatterPlotDemo.java:41)
at lab05b_Task2.FastScatterPlotDemo.main(FastScatterPlotDemo.java:107)
线程“main”java.lang.NumberFormatException中的异常:对于输入字符串:“4⌷�3.⌷�9⌷�.⌷�8.⌷�9⌷" 在sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1222)中 位于java.lang.Float.parseFloat(Float.java:422) 在lab05b_Task2.FastScatterPlotDemo.populateData(FastScatterPlotDemo.java:86)上 在lab05b_Task2.FastScatterPlotDemo上。(FastScatterPlotDemo.java:41) 在lab05b_Task2.FastScatterPlotDemo.main(FastScatterPlotDemo.java:107)上

我不知道这是否与我正在使用ubuntu这一事实有关,这是一个编码问题。

您似乎有一个UTF-16编码的文件。您必须确定它是UTF-16LE还是UTF-16BE。我会首先猜测UTF-16LE。我建议您将编码设置为与文件匹配,并且应该正确读取。如果您不知道编码应该是什么,询问文件的来源它/他们使用了什么


顺便说一句,如果可以避免的话,不要使用
float
。请尝试使用
double
BigDecimal

您似乎有一个UTF-16编码的文件。您必须确定它是UTF-16LE还是UTF-16BE。我会首先猜测UTF-16LE。我建议您将编码设置为匹配该文件,并正确读取它。如果您没有知道编码应该是什么,询问文件的来源,它/他们使用了什么


顺便说一句,如果可以避免的话,不要使用
float
。请尝试使用
double
BigDecimal

您是否尝试过显示要解析的字符串?请改用csv解析器库。或者将数字读取为
String
,改用
NumberFormat
解析。@HotLicks是的,我调试了de>split数组具有
“439.89”
“651.67“
@LuiggiMendoza我试过
NumberFormat
运气不好,不知道csv解析器我有理由相信Peter找到了答案。你试过显示你试图解析的字符串吗?改用csv解析器库。或者将数字读取为
字符串
,并改为使用
数字格式
对其进行解析。@HotLicks是的,我调试了
拆分
数组有
“439.89”
“651.67”
@luigimendoza我尝试了
数字格式
没有运气,我不知道csv parserI我有理由相信Peter有答案。我必须使用float,因为我需要使用JFreeChart FastScatterPlot类,该类需要使用float作为参数,并且csv文件是由我个人生成的,没有做任何编码,如何将编码设置为与文件匹配?
getEncoding()
返回
UTF8
我只将编码设置为UTF-16,没有确定LE或BE,但它让我通过了此错误。。谢谢,我必须使用float,因为我需要使用JFreeChart FastScatterPlot类,该类需要使用float作为参数,并且csv文件是由我个人生成的,没有对编码做任何操作,如何设置编码以匹配文件?
getEncoding()
返回
UTF8
我只将编码设置为UTF-16,没有确定LE或BE,但它让我通过了此错误。。非常感谢。