私はJavaで初心者であり、これらの2つの問題に固執していますので、私は をCSVファイルから1行ずつ読み込みます。NumberFormatExceptionは、JavaでCSVファイルを読み取るとき
ファイルでは、最初の行がStringで、列がdoubleです。 問題は最初の行を読むときです。タイトルをダブルで読むとエラーになります。
それはCSVが
私が得たエラーファイルであるところで、これらはスレッド「メイン」java.lang.NumberFormatExceptionに 例外を下回っている:これは
最初のエラーである「CLOSE」:入力文字列の場合java.lang.Double.parseDouble(Double.java:510)で
サードエラー>>フォース
- sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimaのl.java:1222)における第二の誤差>>エラー>>>でAlgorith AlgorithmTrader.Run(AlgorithmTrader.java:16)
最終エラー>> SimpleAlgorithmTradingPlatform.main(SimpleAlgorithmTradingPl atform.java:15)でmTrader.ReadInputData(AlgorithmTrader.java:63)
フィフスエラー>>
したがって、ファイルの最初の行にはTIMESTAMP |閉じる|ハイ|低い|オープン|これらの行の下には、ボリュームを除いて倍数の数字があります。整数を持っています
あなたの提案は高く評価されます。おかげ
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Scanner;
public class AlgorithmTrader {
public void Run() {
ReadInputData();
}
public void ReadInputData() {
// create object of scanner class for user input
Scanner scan = new Scanner(System.in);
// declare file name for input file
String inputFileName = "";
// input from user for input file
System.out.print("Enter Input File Name: ");
inputFileName = scan.nextLine();
try {
PrintWriter pw = new PrintWriter("output.csv");// to open the file
// create a new file
File file = new File(inputFileName);
// create a new scanner object to read file
Scanner readFile = new Scanner(file);
// for each line data
String line = "";
line = readFile.nextLine();//skip the first line
while (readFile.hasNextLine()) {
readFile.nextLine();
// pass file to scanner again
readFile = new Scanner(file);
ArrayList<String> list = new ArrayList<String>();
// read stock data line by line
while (readFile.hasNextLine()) {
// read line from file
line = readFile.nextLine();
// split line data into tokens
String result[] = line.split(",");
// variables to create a Stock object
String timestamp = result[0];
double close = Double.parseDouble(result[1]);
double high = Double.parseDouble(result[2]);
double low = Double.parseDouble(result[3]);
double open = Double.parseDouble(result[4]);
int volume = Integer.parseInt(result[5]);
// store data into ArrayList
list.add(readFile.next());
pw.print(list.add(readFile.next()));
Stock stock = new Stock(timestamp, close, high, low, open, volume);
}// end of while to read file
//close readFile object
readFile.close();
pw.close();//close file
}
} catch (FileNotFoundException e1) {
System.out.println(" not found.\n");
System.exit(0);
} catch (IOException e2) {
System.out.println("File can't be read\n");
}
}
}
私は別のファイルストッククラス
、内のコンテンツの架空の例を見ていいだろう
import java.text.DecimalFormat;
public class SimpleAlgorithmTradingPlatform {
public static void main(String[] args) {
DecimalFormat fmt = new DecimalFormat("#0.00"); // to get the DecimalFormat
AlgorithmTrader test = new AlgorithmTrader();
test.Run();
}
}
すべての関連情報を質問に追加してください。それは\t \t \t /この行でAlgorithmTrader.ReadInputData(AlgorithmTrader.java:63)ライン63 – c0der
は おかげで、あなたのコード内でこの行をチェックし – Abdoh
を私が編集していると、うまくいけば、あなたは私がやろうとしているかを理解コメント\t double close = Double.parseDouble(result [1]); –