JAVA中读取文件(txt、excel)

一、接收文件

1.Controller层接收文件

//Controller层接收文件
@RestController
@RequestMapping("sync")
@Log4j2
public class SyncPhoneController {

    @Autowired
    SyncPhoneService syncPhoneService;
    
       
    @PostMapping("/syncPhone")
    public ResultModel syncPhone(@RequestPart ("file")MultipartFile file)  throws Exception{
        //用 @RequestPart ("file") MultipartFile file 接收数据
        //也可以用 @RequestParam (name = "file") MultipartFile file 接收数据
        syncPhoneService.syncPhone(file);
        //将文件传入到Service层
        return ResultModel.success("同步成功");
    }
}

2.Service层处理文件

        (1).读取excel文件

                只是单纯的读取每一行的数据

    
    public List<String> readExcel(MultipartFile file) throws Exception{
        // 创建一个字符串向量
        Vector<String> v = new Vector<>();
        // 获取文件输入流
        InputStream inputStream = file.getInputStream();
        // 创建Excel工作簿对象
        XSSFWorkbook workbook = new XSSFWorkbook(inputStream);
        // 获取工作表对象
        XSSFSheet sheet = workbook.getSheetAt(0);
        // 获取工作表中的行数
        int numberOfRows = sheet.getPhysicalNumberOfRows();
        // 循环遍历每一行

        for (int i = 0; i < numberOfRows; i++) {
            // 获取当前行
            XSSFRow row = sheet.getRow(i);
            // 获取第一列单元格的原始值并添加到向量中
            v.add(row.getCell(0).getRawValue());
        }

        //关闭流
        if (inputStream !=null){
            inputStream.close();
        }
        // 返回字符串向量
        return v;
    }
      (2) 读取txt文件

                 只是单纯的读取每一行的数据

public ResultModel readTxtWords(MultipartFile file) throws IOException {
    // 获取文件输入流
    InputStream inputStream = file.getInputStream();
    // 使用 InputStreamReader 将字节流转换为字符流,再用 BufferedReader 包装字符流,便于逐行读取文本
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
    // 创建一个存储敏感词的 ArrayList
    ArrayList<String> sensitiveWords = new ArrayList<>();

    // 逐行读取文本文件内容,并将每行敏感词添加到列表中
    for (String txt = null; (txt = bufferedReader.readLine()) != null;) { 
        sensitiveWords.add(txt);
    }

    // 关闭输入流
    inputStream.close(); 
    // 返回包含敏感词列表的 ResultModel 对象
    return ResultModel.success(sensitiveWords);
}
      (3) 通过本地路径获取到文件

                

public ResultModel readTxtWords() throws IOException {
    // 定义文件路径
    String path = "..";
    // 使用 BufferedReader 读取文件内容
    BufferedReader bufferedReader = new BufferedReader(new FileReader(path));
    // 创建一个存储敏感词的 ArrayList
    ArrayList<String> sensitiveWords = new ArrayList<>();

    // 逐行读取文本文件内容,并将每行敏感词添加到列表中
    for (String txt = null; (txt = bufferedReader.readLine()) != null;) { 
        sensitiveWords.add(txt);
    }

    // 关闭输入流
    inputStream.close(); 
    // 返回包含敏感词列表的 ResultModel 对象
    return ResultModel.success(sensitiveWords);
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值