从csv文件中逐行读取

时间:2020-05-11 07:43:35

标签: java android

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

var encryptedData = CryptoJS.AES.encrypt(JSON.stringify(body), 'aes-256-cbc', ciphertext + apikey, ciphertext);
var decryptedData = CryptoJS.AES.decrypt(encryptedData.toString(), 'aes-256-cbc', ciphertext + apikey, ciphertext);
var decryptedObjectData = JSON.parse(decryptedData.toString(CryptoJS.enc.Utf8));
console.log(decryptedObjectData); 

CSV READER类

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);
}

}

1 个答案:

答案 0 :(得分:0)

当我使用以下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格式未标准化。根据{{​​3}},分号,制表符或空格也用作分隔符。 检查您的csv文件中的分隔符很重要。也许您需要将行String[] row = csvLine.split(",");更改为其他分隔符。

相关问题