gpt4 book ai didi

java - 从 csv 文件中逐行读取

转载 作者:行者123 更新时间:2023-12-01 16:49:22 25 4
gpt4 key购买 nike

我有 CSV 文件,它包含用户时间、距离、纬度和经度其他详细信息,我单击开始按钮每 5 秒逐行读取,如果单击暂停按钮,则需要暂停读取,如果我再次单击开始继续从哪里开始它停了下来。现在它显示所有行。

public class CurrnetActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_currnet);
initViews();
}

public void initViews() {

InputStream inputStream = getResources().openRawResource(R.raw.athlete_run);
CSVReader csvFile = new CSVReader(inputStream);
final List<String[]> Row = csvFile.read();

final Handler handlerOne = new Handler();
Runnable runnableOne = new Runnable() {
@Override
public void run() {

for (int i = 0; i < Row.size(); i++) {

Log.i("===dsd", Row.get(i)[0]);
//Log.d(Constants.TAG, String.format("row %s: %s, %s", i, rows.get(i)[0], rows.get(i)[1]));

}
handlerOne.postDelayed(this, 2000);

}
};

handlerOne.postDelayed(runnableOne, 2000);
}

}

CSV READER 类

public class CSVReader {
InputStream inputStream;

public CSVReader(InputStream inputStream){
this.inputStream = inputStream;
}

public List<String[]> read(){
List<String[]> resultList = new ArrayList<String[]>();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
try {
String csvLine;
while ((csvLine = reader.readLine()) != null) {
String[] row = csvLine.split(",");
resultList.add(row);
}
}
catch (IOException ex) {
throw new RuntimeException("Error in reading CSV file: "+ex);
}
finally {
try {
inputStream.close();
}
catch (IOException e) {
throw new RuntimeException("Error while closing input stream: "+e);
}
}
return resultList;
}
}

最佳答案

当我使用以下 csv 文件测试您的示例时,我得到了完全相同的结果:

Username; Identifier;First name;Last name
booker12;9012;Rachel;Booker
grey07;2070;Laura;Grey
johnson81;4081;Craig;Johnson
jenkins46;9346;Mary;Jenkins
smith79;5079;Jamie;Smith

但是,当我将 String[] row = csvLine.split(","); 更改为 String[] row = csvLine.split(";");CSVReader 类中它起作用了。

您的 csv 文件值似乎没有用逗号分隔。您正在寻找逗号来分隔每个值,因此整行作为单个值呈红色。

csv 格式尚未标准化。根据wikipedia还使用分号、制表符或空格作为分隔。检查 csv 文件中的分隔符非常重要。也许您需要将行 String[] row = csvLine.split(","); 更改为不同的分隔符。

关于java - 从 csv 文件中逐行读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61724604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com