创建文件csv并下载到Android Studio

uajslkp6  于 2023-10-23  发布在  Android
关注(0)|答案(1)|浏览(108)

我在Android Studio中有一个名为“downloadCsvFile”的函数,单击按钮即可调用该函数,我希望此函数创建一个CSV文件,其中包含一些内容,然后将其下载到用户的设备上。
我不知道我是否能做到这一点没有任何图书馆。我知道在Java中存在FileWriter,也许我可以使用它?如果我使用fileWriter,我必须在assets文件夹中创建一个空文件,然后在里面写?为了下载文件,我知道存在DownloadManager,但为此我需要一个外部URI,并且我必须在同一函数内创建文件。
为了下载文件,我知道存在DownloadManager,但为此我需要一个外部URI,并且我必须在同一函数内创建文件。我该怎么做?

ee7vknir

ee7vknir1#

要使用Java在Android Studio中创建CSV(逗号分隔值)文件,您可以使用以下代码。此示例演示如何创建CSV文件并向其中写入数据:

import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import androidx.appcompat.app.AppCompatActivity;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

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

        // Sample data for the CSV file
        List<String> header = new ArrayList<>();
        header.add("Name");
        header.add("Age");
        header.add("City");

        List<List<String>> data = new ArrayList<>();
        data.add(header);
        data.add(new ArrayList<String>() {{
            add("John");
            add("30");
            add("New York");
        }});
        data.add(new ArrayList<String>() {{
            add("Alice");
            add("25");
            add("Los Angeles");
        }});
        data.add(new ArrayList<String>() {{
            add("Bob");
            add("28");
            add("Chicago");
        }});

        // Create and save the CSV file
        createAndSaveCSVFile(data, "sample.csv");
    }

    private void createAndSaveCSVFile(List<List<String>> data, String fileName) {
        try {
            File root = new File(Environment.getExternalStorageDirectory(), "MyCSVs");
            if (!root.exists()) {
                root.mkdirs();
            }

            File file = new File(root, fileName);
            FileWriter writer = new FileWriter(file);

            for (List<String> rowData : data) {
                String row = String.join(",", rowData);
                writer.write(row);
                writer.write("\n");
            }

            writer.flush();
            writer.close();

            Log.d("CSV", "CSV file created and saved at: " + file.getAbsolutePath());
        } catch (IOException e) {
            e.printStackTrace();
            Log.e("CSV", "Error creating CSV file: " + e.getMessage());
        }
    }
}

此代码创建一个带有头文件和数据的示例CSV文件,并将其保存到设备的外部存储目录。请确保在AndroidManifest.xml文件中包含写入外部存储所需的权限。此外,请考虑对于较新的Android版本,您可能需要请求文件访问的运行时权限。就这样。希望能帮上忙...

相关问题