首页 > 其他分享 >使用 StringWriter 和 printWriter 打印异常原因

使用 StringWriter 和 printWriter 打印异常原因

时间:2023-10-09 14:00:12浏览次数:29  
标签:输出 PrintWriter 打印 stringWriter printWriter StringWriter close

StringWriter和PrintWriter都是Java中用于输出文本的类,它们的主要区别在于输出的目标不同。

StringWriter是一个字符流,它将输出的内容保存在一个字符串缓冲区中,可以通过toString()方法获取缓冲区中的字符串。因此,StringWriter通常用于将输出内容保存到字符串中,而不是直接输出到控制台或其他设备上。

PrintWriter则是一个打印流,它可以将输出的内容直接发送到指定的目标(如控制台、文件等)。PrintWriter提供了一些方便的方法来格式化输出内容,例如println()、printf()等。

import java.io.*;

public class PrintWhyUtils {

	// 创建一个StringWriter对象
	private static StringWriter stringWriter = new StringWriter();

     // 创建一个PrintWriter对象,并将输出目标设置为StringWriter
	private static PrintWriter printWriter = new PrintWriter(stringWriter);
		
	public static String weiterException(Exception e){
		String retStr="";
		try{
			e.printStackTrace(printWriter);
			printWriter.flush();
			stringWriter.flush();
			retStr=stringWriter.getBuffer().toString();
			if(stringWriter!=null){
				stringWriter.close();
			}
			if(printWriter!=null){
				printWriter.close();
			}
		}catch(IOException ex){
			ex.printStackTrace();
		}finally {
			try{
				// 关闭PrintWriter和StringWriter
				printWriter.close();
				stringWriter.close();
			}catch(IOException ex){
				ex.printStackTrace();
			}
		}
		return retStr;
    }
}

标签:输出,PrintWriter,打印,stringWriter,printWriter,StringWriter,close
From: https://www.cnblogs.com/ArthurHenry/p/17751567.html

相关文章

  • rdlc报表打印预览时异常 An error occurred during local report processing. The def
    1.rdlc报表打印预览时会出现如下异常:2.解决办法:安装sqlsysclrtypesfor2012.msi并且重启电脑;......
  • 【JAVA】打印一个三角形(5行)
    需求打印一个三角形,实现效果和如图所示 思路分析分成三部分,左边一个透明倒三角,然后两个直角三角拼接外循环为每一行,执行完内循环后换行 代码实现for(inti=1;i<=5;i++){     for(intj=5;j>=i;j--){//最左侧的透明三角    ......
  • 惠普打印机提示卡纸,实际无卡纸,无法打印的一种解决办法,不花钱解决问题,我的最爱
    hp打印机提示卡纸,但打开看又没有卡纸。合上盖子反复尝试,发现是无法吸上去纸,和这一步相关的就是下图所示的搓纸轮。拆下来后,发现上面的软硅胶的纹路已经完全磨光了,中间有一条已经磨得明显凹陷了。买个新的要几天时间,发现可以将外面灰色的那个硅胶套抠下来,旋转180度然后再套上,再将......
  • 输入一个5位数,逐个打印出这5位数的个位、十位、百位、千位、万位。
        五位数I 描述 输入一个5位数,逐个打印出这5位数的个位、十位、百位、千位、万位。 输入 输入为一个五位整数 输出 输出其万位、千位、百位、十位、个位各式多少,每一位之间用一个空格隔开 输入样例1 12345输出样例112345......
  • 算法:打印斐波那契数列的前30项(JS)
    打印斐波那契数列的前30项提示:斐波那契数列的前两项是1,其他项是之前两项之和1functionfibonacciIterative(n){2if(n<=0){//如果输入的n小于等于0,表示输入错误,返回错误提示3return"输入错误,请输入正整数";4}5leta=1;//初始化......
  • 使用 expo-location 获取不到位置信息 Location.getCurrentPositionAsync() 结果无打
    问题描述:reactnative中使用expo-location获取位置信息时,按照官方文档执行案例,获取不到位置结果。Location.requestForegroundPermissionsAsync()执行后可以获取授权状态,但是执行到Location.getCurrentPositionAsync()时不会打印结果。解决方法:给Location.getCurrentPos......
  • 3-13 字符串类型 字符串类型:str 1.定义格式: 变量 = '内容'
    3-13字符串类型字符串类型:str   1.定义格式:       变量='内容'           打印一行       变量="内容"           打印一行       变量='''内容'''或者三引号           可以通过回车的方式换行,......
  • 笨办法学Python3 习题7 更多打印
    知识点:下一行不换行,end="" 作用  下行不换行并且 中间无空格end=""  作用  下行不换行并且 中间有空格end="2" 作用  下行不换行并且 中间有2和空格和end="2"不一样该引号可以是单引号,引号里面可以无空格,有空格,有数字空格一起,或者字符串 ......
  • 笨办法学Python3 习题5 更多的变量和打印
    知识点:f是format格式化的意思,写法1: f "Hello,XXX{变量名1}XX{变量名2}XX" ,写法2:"Hello,XXX{}XX{}XX".format(变量名1,变量名2)浮点数四舍五入的方法,如1.2345,round(1.2345),使用的是round()函数 ......
  • CAD打印提示无法使用绘图仪配置,找不到驱动程序设备怎么解决
    1:cad打印提示无法使用此绘图仪配置_找不到驱动程序设备,怎么办?1、点击布局、页面设置、修改、下拉、选择已有的打印机、确认退出就行了。2:CAD打印无法使用此绘图仪配置怎么解决当打印CAD图纸时出现警告“无法使用绘图仪配置”,可能原因是找不到驱动程序、找不到设备或者驱动程......