StringBuilder,BufferedReader,InputStreamReader,FileInputStream
时间: 2024-02-02 10:07:45 浏览: 152
这四个类都是 Java 中常用的 IO 类,分别用于字符串拼接、读取文本文件和二进制文件。其中,StringBuilder 和 StringBuffer 都是用于字符串拼接的,StringBuilder 是线程不安全的,而 StringBuffer 是线程安全的。BufferedReader 和 InputStreamReader 则是用于读取文本文件的,FileInputStream 则是用于读取二进制文件的。
相关问题
public String getFileContent(String filePath) throws IOException { // String filePath = "E:\\a.txt"; System.out.println("filePath=====>" + filePath); StringBuilder sb = new StringBuilder(); BufferedReader br = null; if (filePath != null) { InputStreamReader isr = null; try { isr = new InputStreamReader(new FileInputStream( new File(filePath)), "UTF-8"); br = new BufferedReader(isr); String line; while ((line = br.readLine()) != null) { sb.append(line).append("\n"); } } finally { br.close(); isr.close(); } } return sb.toString(); }
这是一个Java代码,它读取指定文件路径下的文本文件,并将文件内容以字符串形式返回。该方法使用了Java IO中的FileInputStream、InputStreamReader和BufferedReader等类,以及try-finally语句块确保资源被正确关闭。请注意,该方法假定文件编码为UTF-8。
public static File reset(File htmlFile,String htmlPath,String reportId){ File newHtmlFile = null; try { BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(htmlFile), "UTF-8")); StringBuilder stringBuilder = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { stringBuilder.append(line); stringBuilder.append(System.lineSeparator()); } reader.close(); String str = stringBuilder.toString(); System.out.println(str); // 解析HTML文件 Document doc = Jsoup.parse(str); /*// 找到目标div标签 Element div = doc.getElementById("null_background"); // 修改style属性中的背景样式 div.attr("style", div.attr("style").replace("background:", "")); // 生成新的File对象*/ Path newFilePath = Paths.get(htmlPath+"/reseHtml/"+reportId + ".html"); Files.write(newFilePath, doc.outerHtml().getBytes()); newHtmlFile = new File(newFilePath.toString()); return newHtmlFile; }catch (Exception o){ o.printStackTrace(); newHtmlFile = htmlFile; } return newHtmlFile; }生成的html乱码了怎么处理
出现乱码可能是因为编码不一致导致的。可以尝试以下几种解决方法:
1. 在读取文件时指定正确的编码格式,例如读取 UTF-8 编码的文件应使用 `new InputStreamReader(new FileInputStream(htmlFile), "UTF-8")`。
2. 在生成新的 HTML 文件时,指定正确的编码格式,例如使用 `Files.write(newFilePath, doc.outerHtml().getBytes("UTF-8"))`。
3. 在 HTML 文件的头部添加编码声明,例如 `<meta charset="UTF-8">`,这样浏览器就能正确地解析文件中的非 ASCII 字符。
如果以上方法还是无法解决问题,可能是因为文件本身出现了损坏或错误,需要检查原始文件是否正确无误。
阅读全文