java - 如何将 csv 文件中的数据打印到第二个 Activity 上?

标签 java android android-studio opencsv

我正在创建一个应用程序,该应用程序在其原始资源文件夹中存储了一个 csv 文件,当我单击主 Activity 中的按钮时,它应该在第二个 Activity 中打印 csv 文件的数据。但是,当我启动应用程序,然后使用按钮启动第二个 Activity 时,其输出为空白...

我尝试使用堆栈溢出中的各种代码,但无法达到预期的结果。我的 csv 文件真的很长,但我在这里保留了其中的一部分,所以请耐心等待;-) :

6200,30,10,9
6200 N,30,10,9
6200 NR,30,10,9
6200 ZNR,30,10,9
6200 ZZNR,30,10,9
6300,35,10,11
6300 2RS,35,10,11
6300 RS,35,10,11
6300 Z,35,10,11
6300 ZZ,35,10,11
6201,32,12,10
6201 2RS,32,12,10
6201 N,32,12,10
6201 NR,32,12,10
6201 RS,32,12,10
6201 Z,32,12,10
6201 ZNR,32,12,10
6201 ZZ,32,12,10

这是我的代码:-

MainActivity.java

public class MainActivity extends AppCompatActivity {

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


    Button button1 = findViewById(R.id.button1);
    Button button2 = findViewById(R.id.button2);
    Button button3 = findViewById(R.id.button3);

    button1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
             SecondActivity();
        }
    });

    button2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
         ThirdActivity();
        }
    });

    button3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
         FourthActivity();
        }
    });

}

    public void SecondActivity() {
        Intent intent = new Intent(this, SecondActivity.class);
        startActivity(intent);

    }
    public void ThirdActivity(){
        Intent intent = new Intent(this, ThirdActivity.class);
        startActivity(intent);
    }

    public void FourthActivity(){
        Intent intent = new Intent(this,FourthActivity.class);
        startActivity(intent);
    }

SecondActivity.java

public class SecondActivity extends AppCompatActivity {
InputStream inputStream;

String[] data;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);
    inputStream = getResources().openRawResource(R.raw.bearingdata);

    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
    try {
        String csvLine;
        while ((csvLine = reader.readLine()) != null)
        {
            data=csvLine.split(",");
            try{

                Log.e("Data ",""+data[0]) ;
                Log.e("Data ",""+data[0]+""+data[1]+""+data[2]) ;

            }catch (Exception e){
                Log.e("Problem",e.toString());
            }
        }
    }
    catch (IOException ex) {
        throw new RuntimeException("Error in reading CSV file: "+ex);
    }

}

那么我是否缺少诸如为 csv 文件创建单独的 java 类之类的内容,或者我的某些代码是否缺少某些内容???请帮助,因为我只是想学习一些编码并正确地做到这一点。

另外,我想在 SecondActivity 的 ListView 中显示 csv 文件。

最佳答案

@Nachiketa,

我已经尝试了您的共享代码并使用 Assets 管理器进行了修改,并且能够在 logcat 中看到数据。请看下面的代码,

       AssetManager am = getAssets();
            try {
                InputStream is = am.open("one.csv");
                BufferedReader reader = new BufferedReader(new InputStreamReader(is));
                    String csvLine;
                    while ((csvLine = reader.readLine()) != null)
                    {
                        data=csvLine.split(",");
                        try{

                            Log.e("Data ",""+data[0]) ;
                            Log.e("Data ",""+data[0]+""+data[1]+""+data[2]) ;

                        }catch (Exception e){
                            Log.e("Problem",e.toString());
                        }
                    }
            } catch (IOException e) {
                    e.printStackTrace();
            }

如果解决了您的问题,请选中此选项并标记为已回答。

谢谢

关于java - 如何将 csv 文件中的数据打印到第二个 Activity 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62383193/

相关文章:

java - 如何在Java中旋转星号梯形?

java - 如何获取两个 EditText 字段的值并进行简单的数学计算

java - Android ListView 未填充数据

java - java中溢出整数是如何存储的?为什么?

java - 如何为自定义应用程序类转换上下文

java - 在UDP Socket java android上发送和接收数据

java - Android APP如何使用通用MQTT类?

android-studio - 错误 : Setting VM flags failed: unrecognized flags: disable-dart-dev

android - Android Studio-通过启动自动启动DDMS和模拟器,并在DDMS中自动清除logcat

java - 使用 Stream API 对列表中的对象进行分组