根据前端传来的 MultipartFile 解析
@RestController
@RequestMapping("/file")
public class FileReader {
@PostMapping("/read")
public void xxxx(MultipartFile file) throws IOException {
InputStream inputStream = file.getInputStream();
int x;
List<String> result = Lists.newArrayList();
StringBuilder sb = new StringBuilder();
while ((x = inputStream.read()) != -1) {
if (x != 10 && x != 13) {//13是ASCII里的CR换行 10是ASCII里的LF回车
sb.append((char) x);
}
if (x == 10) {
result.add(sb.toString());
sb = new StringBuilder();
}
}
if (sb.length() != 0) result.add(sb.toString());
result.forEach(System.out::println);
}
}
或:
如果是直接有File 则可以
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
然后bufferedReader.readLine()
这里:
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(file.getInputStream()));
从mysql读数据保存csv文件:
@PostMapping(value = "/query")
public void queryxxx() throws IOException {
String path = "C:\\Users\\Desktop\\test";
String csvName = "testCSV";
File file = new File(path);
if (!file.exists()) {
file.mkdirs();
}
File csvFile = new File(file.getPath() + "\\" + csvName + ".csv");
if (!csvFile.exists()) {
csvFile.createNewFile();
}
try (BufferedWriter bufferedReader = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(csvFile), "UTF-8"), 1024);){
List<Map<String, Object>> queryForList =
jdbcTemplate.queryForList("select id,name,sex,age,phone from user_01 where name = '郑23f' order by age");
queryForList.forEach(vo -> {
StringBuilder sb = new StringBuilder();
sb.append(vo.get("id")).append(",").append(vo.get("name")).append(",").append(vo.get("sex")).append(",").append(vo.get("age")).append(",")
.append(vo.get("phone"));
try {
bufferedReader.write(sb.toString());
bufferedReader.newLine();
} catch (IOException e) {
e.printStackTrace();
}
});
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}