JAVA 生成CSV 并上传到FTP服务器避免乱码
时间: 2023-08-04 18:03:37 浏览: 72
您可以使用以下代码来生成CSV文件并上传到FTP服务器:
```java
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.nio.charset.StandardCharsets;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
public class CSVGenerator {
public static void main(String[] args) {
generateCSV();
}
public static void generateCSV() {
String csvFilePath = "path/to/csv/file.csv";
String ftpServer = "ftp.example.com";
int ftpPort = 21;
String ftpUser = "username";
String ftpPassword = "password";
String ftpDirectory = "/path/to/ftp/directory/";
try (Writer writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(csvFilePath), StandardCharsets.UTF_8))) {
// 写入CSV文件内容
writer.write("列1,列2,列3\n");
writer.write("数据1,数据2,数据3\n");
writer.write("数据4,数据5,数据6\n");
// 添加更多数据行...
// 上传CSV文件到FTP服务器
FTPClient ftpClient = new FTPClient();
ftpClient.connect(ftpServer, ftpPort);
ftpClient.login(ftpUser, ftpPassword);
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
ftpClient.changeWorkingDirectory(ftpDirectory);
ftpClient.storeFile("file.csv", new FileInputStream(csvFilePath));
ftpClient.logout();
ftpClient.disconnect();
System.out.println("CSV文件已生成并成功上传到FTP服务器!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
请注意,您需要先在项目中添加 Apache Commons Net 库的依赖,以便使用 `FTPClient` 类。您可以在 Maven 中添加以下依赖项:
```xml
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.7.2</version>
</dependency>
```
请将以下变量替换为您自己的值:
- `csvFilePath`:CSV文件的本地路径和文件名。
- `ftpServer`:FTP服务器的地址。
- `ftpPort`:FTP服务器的端口号(默认为21)。
- `ftpUser`:FTP服务器的用户名。
- `ftpPassword`:FTP服务器的密码。
- `ftpDirectory`:要上传到的FTP服务器的目录路径。
这段代码会生成一个包含示例数据的CSV文件,并将其上传到指定的FTP服务器。您可以根据自己的需求修改CSV文件的内容和上传的逻辑。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)