GVKun编程网logo

关闭BufferedReader和System.in(bufferedreader需不需要关闭)

3

本篇文章给大家谈谈关闭BufferedReader和System.in,以及bufferedreader需不需要关闭的知识点,同时本文还将给你拓展BufferedBeader和BufferedWrit

本篇文章给大家谈谈关闭BufferedReader和System.in,以及bufferedreader需不需要关闭的知识点,同时本文还将给你拓展BufferedBeader和BufferedWriter、BufferedReader 和BufferedWriter、BufferedReader/BufferedWriter 替换 xml 文档下载成 word 文档、BufferedReader和BufferedInputStream之间的区别等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

关闭BufferedReader和System.in(bufferedreader需不需要关闭)

关闭BufferedReader和System.in(bufferedreader需不需要关闭)

Reader rdr = new InputStreamReader(System.in);BufferedReader br = new BufferedReader(rdr);String s;s = br.readLine();br.close();Scanner sc = new Scanner(System.in);s = sc.nextLine();System.out.print(s);

我注意到,如果关闭BufferedReader,我将无法再从键盘插入输入,因为System.in已经关闭了。无论如何,我可以保留br.close()(删除文件时需要它),然后从键盘添加更多输入吗?

答案1

小编典典

看起来您需要:

http://commons.apache.org/io/apidocs/org/apache/commons/io/input/CloseShieldInputStream.html

在制作读者之前,先将System.in环绕起来,然后一切都会好起来的,因为使用FileInputStream时不会这样做。

BufferedBeader和BufferedWriter

BufferedBeader和BufferedWriter

 package cn.file;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Student {
public static void main(String[] args) {
 String content[]={"好久不见","最近好吗","常联系"};
 File file =new File("f://wordl.txt");
 FileWriter fw;
 try {
  fw = new FileWriter(file);
  BufferedWriter bufw =new BufferedWriter(fw);
  for(int k=0;k<content.length;k++){
   bufw.write(content[k]);
   bufw.newLine();
  }
  bufw.close();
  fw.close();
 
 } catch (Exception e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 try {
  FileReader fr=new FileReader(file);
  BufferedReader bufr=new BufferedReader(fr);
  String s=null;
  int i=0;
  while((s=bufr.readLine())!=null){
   i++;
   System.out.println("第"+i+"行:"+s);
  }
  bufr.close();
  fr.close();
  
 } catch (FileNotFoundException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 } catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 
}
}

BufferedReader 和BufferedWriter

BufferedReader 和BufferedWriter

1、BufferedReader

从输入字符流中读取文本,缓冲各个字符,从而实现字符,数组和行的读取。

构造函数 BuffferedReader(reader)

reader 为InputStreamReader.它是安装指定的编码(如GBK)将二进制流转换为字符流。

构造函数

InputStreamReader(InputStream in)

Creates an InputStreamReader that uses the default charset.

InputStreamReader(InputStream in, Charset cs)

Creates an InputStreamReader that uses the given charset.

InputStreamReader(InputStream in, CharsetDecoder dec)

Creates an InputStreamReader that uses the given charset decoder.

InputStreamReader(InputStream in, String charsetName)

Creates an InputStreamReader that uses the named charset.

2、BufferedWriter

输入流:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入

构造函数   BufferedWriter(Writer out) 

Writer子类

BufferedWriter, CharArrayWriter, FilterWriter, OutputStreamWriter, PipedWriter, PrintWriter, StringWriter

 

 

 

 

BufferedReader/BufferedWriter 替换 xml 文档下载成 word 文档

BufferedReader/BufferedWriter 替换 xml 文档下载成 word 文档

public static String create(File filedoc , Map<String,String> map , boolean bflag , String filename , String path,HttpServletResponse response){
try {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(filedoc),"utf-8"));
response.setContentType("application/x-msdownload;"); 
response.addHeader("Content-disposition", "inline; filename=myword.doc"); 
BufferedWriter bw = new BufferedWriter (new OutputStreamWriter (response.getOutputStream (),"utf-8"));// 设置 utf-8 输出流字符集,编码,不设置就会有乱码
// BufferedWriter bw = new BufferedWriter (new OutputStreamWriter (new FileOutputStream (path + "/" +StringUtils.getText (map.get ("eventCompanyName"))+filename +".doc"),"utf-8"));//struts 文档下载去配置文件里配置就 ok 了
String line = "";
StringBuilder strBuil = new StringBuilder();
while((line = br.readLine()) != null){
for(Map.Entry<String, String> entry: map.entrySet()) {

 if (line.contains (">"+entry.getKey ()) || line.contains (">("+entry.getKey ())){//35 个汉字一行
String getKey = entry.getKey().toString();
String getValue = map.get(getKey).toString();
strBuil.append (line.replace (entry.getKey (), map.get (entry.getKey ()))).append ("\n");// 做个替换字符

//strBuil.append (line.replace (entry.getKey (), map.get (entry.getKey ()).replace ("\n", "</w:t></w:r></w:p><w:p><w:pPr><w:spacing w:line=\"480\"w:line-rule=\"auto\"/><w:ind w:first-line-chars=\"200\"/><w:rPr><w:rFonts w:ascii=\" 仿宋_GB2312\"w:fareast=\" 仿宋_GB2312\"w:h-ansi=\" 宋体 \"w:hint=\"fareast\"/><wx:font wx:val=\" 仿宋_GB2312\"/><w:sz w:val=\"24\"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii=\" 仿宋_GB2312\"w:fareast=\" 仿宋_GB2312\"w:h-ansi=\" 宋体 \"w:hint=\"fareast\"/><wx:font wx:val=\" 仿宋_GB2312\"/><w:sz w:val=\"24\"/></w:rPr><w:t>"))).append ("\n");
//word 文档中存在如下内容
//w:val="24" /><w:lang w:val="EN-US" w:fareast="ZH-CN" w:bidi="AR-SA" /></w:rPr></w:style><w:style
// 当 map 中含有 key 值为 area 时出现 BUG
// 所以判断条件由 line.contains (entry.getKey ()) 改为 line.contains (">"+entry.getKey ())
//word 中 xml 加下划线的换行为   </w:t></w:r></w:p><w:p><w:pPr><w:wordWrap w:val=\"off\"/><w:rPr><w:rFonts w:fareast=\"仿宋_GB2312\"/><w:sz w:val=\"24\"/><w:u w:val=\"single\"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:fareast=\"仿宋_GB2312\" w:hint=\"fareast\"/><wx:font wx:val=\"仿宋_GB2312\"/><w:sz w:val=\"24\"/><w:u w:val=\"single\"/></w:rPr><w:t>
bflag = true;
}else{
continue;
}
}
if(bflag == false){
strBuil.append(line).append("\n");
}
bflag = false;
}
bw.write(strBuil.toString());
System.out.println(strBuil.toString());
String docPath =StringUtils.getText (map.get ("eventCompanyName"))+filename + ".doc";// 下载文件
br.close();
bw.close();
return docPath;
} catch (Exception e) {
e.printStackTrace();
return "";
}
}

BufferedReader和BufferedInputStream之间的区别

BufferedReader和BufferedInputStream之间的区别

之间有什么区别BufferedReaderBufferedInputStreamScanner在Java?BufferedReader阅读文本并BufferedInputStream阅读byte。除此之外有什么区别吗?

我们今天的关于关闭BufferedReader和System.inbufferedreader需不需要关闭的分享已经告一段落,感谢您的关注,如果您想了解更多关于BufferedBeader和BufferedWriter、BufferedReader 和BufferedWriter、BufferedReader/BufferedWriter 替换 xml 文档下载成 word 文档、BufferedReader和BufferedInputStream之间的区别的相关信息,请在本站查询。

本文标签: