如何使用java在azure文件存储帐户上写入CSV文件?

如何使用java在azure文件存储帐户上写入CSV文件?,java,azure,Java,Azure,我们创建CSV文件到系统上指定路径的方式,如在一个驱动器和一些文件夹路径中,我们使用FileWriter在创建FileWriter对象时指定filePath。同样,我们如何使用java在azure文件存储中创建CSV文件 我正在开发SpringMVC hibernate应用程序,在这个应用程序中,我需要从SQLServer读取数据,并将数据写入csv文件,然后将该文件放置到某个位置。 该代码已经存在。但我现在需要将此数据写入azure文件存储位置。假设这就是代码 String csvFi

我们创建CSV文件到系统上指定路径的方式,如在一个驱动器和一些文件夹路径中,我们使用FileWriter在创建FileWriter对象时指定filePath。同样,我们如何使用java在azure文件存储中创建CSV文件

我正在开发SpringMVC hibernate应用程序,在这个应用程序中,我需要从SQLServer读取数据,并将数据写入csv文件,然后将该文件放置到某个位置。 该代码已经存在。但我现在需要将此数据写入azure文件存储位置。假设这就是代码

    String csvFile = "/Users/amar/csv/developer.csv";
    FileWriter writer = new FileWriter(csvFile);

    List<Developer> developers = Arrays.asList(
            new Developer("amar", new BigDecimal(120500), 32),
            new Developer("zilap", new BigDecimal(150099), 5),
            new Developer("ultraman", new BigDecimal(99999), 99)
    );

    //for header
    CSVUtils.writeLine(writer, Arrays.asList("Name", "Salary", "Age"));

    for (Developer d : developers) {

        List<String> list = new ArrayList<>();
        list.add(d.getName());
        list.add(d.getSalary().toString());
        list.add(String.valueOf(d.getAge()));

        CSVUtils.writeLine(writer, list);

        //try custom separator and quote.
        //CSVUtils.writeLine(writer, list, '|', '\"');
    }

    writer.flush();
    writer.close();
像这样的

因此,我的问题是,什么是azure api for java中csv filewriter的替代品。

根据我的经验,没有提供类似的方法
文件。写入(文件)

根据您的代码,似乎您创建了一个本地文件并将数据写入其中。然后您可以使用
uploadFromPath
方法将文件上载到Azure文件存储中

示例代码如下:

String csvFile = "/Users/amar/csv/developer.csv";
FileWriter writer = new FileWriter(csvFile);

List<Developer> developers = Arrays.asList(
        new Developer("amar", new BigDecimal(120500), 32),
        new Developer("zilap", new BigDecimal(150099), 5),
        new Developer("ultraman", new BigDecimal(99999), 99)
);

//for header
CSVUtils.writeLine(writer, Arrays.asList("Name", "Salary", "Age"));

for (Developer d : developers) {

    List<String> list = new ArrayList<>();
    list.add(d.getName());
    list.add(d.getSalary().toString());
    list.add(String.valueOf(d.getAge()));

    CSVUtils.writeLine(writer, list);

    //try custom separator and quote.
    //CSVUtils.writeLine(writer, list, '|', '\"');
}

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

CloudStorageAccount storageAccount = CloudStorageAccount.parse(storageConnectionString);

CloudFileClient fileClient = storageAccount.createCloudFileClient();

CloudFileShare share = fileClient.getShareReference("test");

CloudFileDirectory rootDir = share.getRootDirectoryReference();    

CloudFile file = rootDir.getFileReference("test.csv");

file.uploadFromPath(csvFile);
希望对您有所帮助。

根据我的经验,没有提供类似的方法
文件。写入(文件)

根据您的代码,似乎您创建了一个本地文件并将数据写入其中。然后您可以使用
uploadFromPath
方法将文件上载到Azure文件存储中

示例代码如下:

String csvFile = "/Users/amar/csv/developer.csv";
FileWriter writer = new FileWriter(csvFile);

List<Developer> developers = Arrays.asList(
        new Developer("amar", new BigDecimal(120500), 32),
        new Developer("zilap", new BigDecimal(150099), 5),
        new Developer("ultraman", new BigDecimal(99999), 99)
);

//for header
CSVUtils.writeLine(writer, Arrays.asList("Name", "Salary", "Age"));

for (Developer d : developers) {

    List<String> list = new ArrayList<>();
    list.add(d.getName());
    list.add(d.getSalary().toString());
    list.add(String.valueOf(d.getAge()));

    CSVUtils.writeLine(writer, list);

    //try custom separator and quote.
    //CSVUtils.writeLine(writer, list, '|', '\"');
}

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

CloudStorageAccount storageAccount = CloudStorageAccount.parse(storageConnectionString);

CloudFileClient fileClient = storageAccount.createCloudFileClient();

CloudFileShare share = fileClient.getShareReference("test");

CloudFileDirectory rootDir = share.getRootDirectoryReference();    

CloudFile file = rootDir.getFileReference("test.csv");

file.uploadFromPath(csvFile);

希望它能帮助你。

你需要告诉更多。请告诉我们您正在构建什么类型的应用程序,它在哪里运行(Azure VM/WebApp等),以及到目前为止您尝试了什么。就目前情况而言,没有太多的细节可供我们正确回答。你需要告诉更多。请告诉我们您正在构建什么类型的应用程序,它在哪里运行(Azure VM/WebApp等),以及到目前为止您尝试了什么。就目前而言,没有太多的细节可供我们正确回答。感谢龚杰伦的快速回复。但我们的要求是直接创建csv文件到azure文件存储。实际上,这个想法不是使用本地文件系统。@ SasHISHKHAR,也许你可以考虑使用我在答案中提到的流方法来将数据上传到Azure文件StasaGeangsKay宫中以快速响应。但我们的要求是直接创建csv文件到azure文件存储。实际上,这个想法不是使用本地文件系统.@ SasHISHKHAR,那么也许你可以考虑使用我在答案中提到的流方法来将数据上传到Azure文件存储中。
file.upload( new StringBufferInputStream("aaa"),"aaa".length());