这篇文章主要介绍了Java(springboot) 读取txt文本内容代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
代码如下
public class TxtTest { private static final Logger logger = LoggerFactory.getLogger(TxtTest.class); public static String readTxt(File file) throws IOException { String s = ""; InputStreamReader in = new InputStreamReader(new FileInputStream(file),"UTF-8"); BufferedReader br = new BufferedReader(in); StringBuffer content = new StringBuffer(); while ((s=br.readLine())!=null){ content = content.append(s); } return content.toString(); } public static void main(String[] args) { try { //通过绝对路径获取文件 String s1 = TxtTest.readTxt(new File("C:\\Users\\....\\du.txt")); logger.info(s1); //spring boot中文件直接放在resources目录下 String s2 = TxtTest.readTxt(ResourceUtils.getFile("classpath:du.txt")); logger.info(s2); } catch (IOException e) { e.printStackTrace(); } } }
以上代码如果部署在linux服务器上,就找不到SpringBoot项目resources根目录下的du.txt文件。所以需要修改成如下方式:
import com.huixiaoer.joy.api.common.config.EnvConfig; import com.huixiaoer.joy.api.service.FileService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.ClassPathResource; import org.springframework.stereotype.Service; import org.springframework.util.ResourceUtils; import java.io.*; @Slf4j @Service public class FileServiceImpl implements FileService { @Override public String readTxtFile() { try { byte[] bytes; ClassPathResource classPathResource = new ClassPathResource("file/du.txt"); //获取文件流 InputStream keyStream = classPathResource.getInputStream(); bytes = IOUtils.toByteArray(keyStream); keyStream.read(bytes); keyStream.close(); ByteArrayInputStream certBis = new ByteArrayInputStream(bytes); InputStreamReader input = new InputStreamReader(certBis); BufferedReader bf = new BufferedReader(input); String line = null; StringBuilder sb = new StringBuilder(); while((line=bf.readLine()) != null){ sb.append(line); } return sb.toString(); } catch (IOException e) { log.error("读取文件错误",e); } return ""; } }