day_5_24

博客围绕输入流操作展开,提到目标文件在输入流中必须存在,否则会有异常,而某些对象不存在会自行创建。还涉及字节和字符拷贝,探讨了字符转换问题,如英文字符和中文汉字的转换。此外,解决了小数组多读取问题,还提及力扣做题及字符编码字节数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 对于输入流InputStream is = new FileInputStream("目标文件") "目标文件"必须存在,否则有异常。而对象 OutputStream os = new FileOutputStream();则不需要,如果不存在则会自己创建,存在则会覆盖
    2.//3.关闭流【每一个对象.close都要try-catch】在这里插入图片描述
    3.字节拷贝
    在这里插入图片描述
    4.字符拷贝
    获取字节,然后转成字符试着获取1个,能否转换成功英文字符再获取2|3个,看能否转换成中文汉字 不一定全部转成功 不成功就是? ?出现一个字节 ,少了一个字节
    所有 结论:字符拷贝只能对文本文件进行,不可以拷贝非文本文件!
    5.即:\r是回车,\n是换行,前者使光标到行首,后者使光标下移一格。
    在这里插入图片描述

标准写法这样写不用自己关闭了,默认会调用close方法,因为继承了

	try(
	//1.流对象和文件的关联流可以自动关闭,前提,流实现Claseable接口
	){
	//2.流操作
	}catch(Exception e){
		e.printStackTrace();
	}
finally部分省略掉

今天最大的成就
解决了小数组多读取的问题。read()中放入数组参数会返回每次读取的长度。
力扣的里面弄了两道题

在这里插入图片描述
!!!只要是读取、写入出现乱码问题,肯定是操作的文件和程序的编码不一致
utf 汉志占3个字节,gbk 2个字节
InputStreamReader

static void BackLight_Shutdown(void) { PWM_Channel_Stop(BL_LED_BLUE_CHL); PWM_Channel_Stop(BL_LED_WHITE_CHL); } void BackLight_Data_Init(void) { BL_Mode = BL_DAY_MODE; BL_Fitter = 0u; BL_ChecktoDis_Flag = 0u; } void BackLight_Data_IGON_Init(void) { } void BackLight_Sleep_Init(void) { BackLight_Shutdown( ); } void BackLight_PWM_Init(void) { PWM_Channel_Init(BL_LED_BLUE_CHL, 0u, 0u, 0u, 0u); //蓝 PWM_Channel_Set_Freq(BL_LED_BLUE_CHL, 1400); PWM_Channel_Init(BL_LED_WHITE_CHL, 0u, 0u, 0u, 0u); //白 PWM_Channel_Set_Freq(BL_LED_WHITE_CHL, 1400); } void BackLight_Odo_Set(uint8_t mode , uint8_t duty) { if(mode == BL_DAY_MODE) { LED_Driver_Channel_Set(LampChannel_0, LampCh0_00_ODO_BL_BlueHigh, 0u); LED_Driver_Channel_Set(LampChannel_0, LampCh0_21_ODO_BL_BlueLow, 0u); LED_Driver_Channel_Set(LampChannel_0, LampCh0_20_ODO_BL_WhiteHigh, duty); LED_Driver_Channel_Set(LampChannel_0, LampCh0_35_ODO_BL_WhiteLow, duty); } else { LED_Driver_Channel_Set(LampChannel_0, LampCh0_00_ODO_BL_BlueHigh, duty); LED_Driver_Channel_Set(LampChannel_0, LampCh0_21_ODO_BL_BlueLow, duty); LED_Driver_Channel_Set(LampChannel_0, LampCh0_20_ODO_BL_WhiteHigh, 0u); LED_Driver_Channel_Set(LampChannel_0, LampCh0_35_ODO_BL_WhiteLow, 0u); } } void BackLight_AirTemp_Set(uint8_t mode , uint8_t duty) { if(mode == BL_DAY_MODE) { LED_Driver_Channel_Set(LampChannel_0, LampCh0_26_TempBL_GreenHigh, 0u); LED_Driver_Channel_Set(LampChannel_0, LampCh0_28_TempBL_GreenLow, 0u); LED_Driver_Channel_Set(LampChannel_0, LampCh0_27_TempBL_WhiteHigh, duty); LED_Driver_Channel_Set(LampChannel_0, LampCh0_29_TempBL_WhiteLow, duty); } else { LED_Driver_Channel_Set(LampChannel_0, LampCh0_26_TempBL_GreenHigh, duty); LED_Driver_Channel_Set(LampChannel_0, LampCh0_28_TempBL_GreenLow, duty); LED_Driver_Channel_Set(LampChannel_0, LampCh0_27_TempBL_WhiteHigh, 0u); LED_Driver_Channel_Set(LampChannel_0, LampCh0_29_TempBL_WhiteLow, 0u); } } void BackLight_InforSt_Set(uint8_t mode , uint8_t duty) { if(mode == BL_DAY_MODE) { LED_Driver_Channel_Set(LampChannel_1, LampCh1_00_InSt_BL_Blue6, 0u); LED_Driver_Channel_Set(LampChannel_1, LampCh1_02_InSt_BL_Blue5, 0u); LED_Driver_Channel_Set(LampChannel_1, LampCh1_04_InSt_BL_Blue4, 0u); LED_Driver_Channel_Set(LampChannel_1, LampCh1_06_InSt_BL_Blue3, 0u); LED_Driver_Channel_Set(LampChannel_1, LampCh1_08_InSt_BL_Blue2, 0u); LED_Driver_Channel_Set(LampChannel_1, LampCh1_10_InSt_BL_Blue1, 0u); LED_Driver_Channel_Set(LampChannel_1, LampCh1_01_InSt_BL_White6, duty); LED_Driver_Channel_Set(LampChannel_1, LampCh1_03_InSt_BL_White5, duty); LED_Driver_Channel_Set(LampChannel_1, LampCh1_05_InSt_BL_White4, duty); LED_Driver_Channel_Set(LampChannel_1, LampCh1_07_InSt_BL_White3, duty); LED_Driver_Channel_Set(LampChannel_1, LampCh1_09_InSt_BL_White2, duty); LED_Driver_Channel_Set(LampChannel_1, LampCh1_11_InSt_BL_White1, duty); } else { LED_Driver_Channel_Set(LampChannel_1, LampCh1_00_InSt_BL_Blue6, duty); LED_Driver_Channel_Set(LampChannel_1, LampCh1_02_InSt_BL_Blue5, duty); LED_Driver_Channel_Set(LampChannel_1, LampCh1_04_InSt_BL_Blue4, duty); LED_Driver_Channel_Set(LampChannel_1, LampCh1_06_InSt_BL_Blue3, duty); LED_Driver_Channel_Set(LampChannel_1, LampCh1_08_InSt_BL_Blue2, duty); LED_Driver_Channel_Set(LampChannel_1, LampCh1_10_InSt_BL_Blue1, duty); LED_Driver_Channel_Set(LampChannel_1, LampCh1_01_InSt_BL_White6, 0u); LED_Driver_Channel_Set(LampChannel_1, LampCh1_03_InSt_BL_White5, 0u); LED_Driver_Channel_Set(LampChannel_1, LampCh1_05_InSt_BL_White4, 0u); LED_Driver_Channel_Set(LampChannel_1, LampCh1_07_InSt_BL_White3, 0u); LED_Driver_Channel_Set(LampChannel_1, LampCh1_09_InSt_BL_White2, 0u); LED_Driver_Channel_Set(LampChannel_1, LampCh1_11_InSt_BL_White1, 0u); } } void BackLight_BackGround_Set(uint8_t duty) { LED_Driver_Channel_Set(LampChannel_0, LampCh0_09_LeftLowerFrame1, duty); LED_Driver_Channel_Set(LampChannel_0, LampCh0_10_LeftLowerFrame2, duty); LED_Driver_Channel_Set(LampChannel_0, LampCh0_11_LeftLowerFrame3, duty); LED_Driver_Channel_Set(LampChannel_0, LampCh0_12_LeftLowerFrame4, duty); LED_Driver_Channel_Set(LampChannel_0, LampCh0_13_LeftLowerFrame5, duty); LED_Driver_Channel_Set(LampChannel_0, LampCh0_16_LeftLowerFrame6, duty); LED_Driver_Channel_Set(LampChannel_0, LampCh0_17_RightLowerFrame1, duty); LED_Driver_Channel_Set(LampChannel_0, LampCh0_18_RightLowerFrame2, duty); LED_Driver_Channel_Set(LampChannel_0, LampCh0_19_RightLowerFrame3, duty); LED_Driver_Channel_Set(LampChannel_0, LampCh0_23_RightUpFrame1, duty); LED_Driver_Channel_Set(LampChannel_0, LampCh0_24_RightUpFrame2, duty); LED_Driver_Channel_Set(LampChannel_0, LampCh0_25_RightUpFrame3, duty); LED_Driver_Channel_Set(LampChannel_0, LampCh0_31_LeftUpFrame, duty); LED_Driver_Channel_Set(LampChannel_0, LampCh0_30_FuleLevelBacck1, duty); LED_Driver_Channel_Set(LampChannel_0, LampCh0_32_FuleLevelBacck2, duty); LED_Driver_Channel_Set(LampChannel_0, LampCh0_33_FuleLevelBacck3, duty); } void BackLight_Time_Set(uint8_t mode , uint8_t duty) { if(mode == BL_DAY_MODE) { LED_Driver_Channel_Set(LampChannel_1, LampCh1_30_Time_BL_GreenHour, 0u); LED_Driver_Channel_Set(LampChannel_1, LampCh1_32_Time_BL_GreenMinute, 0u); LED_Driver_Channel_Set(LampChannel_1, LampCh1_31_Time_BL_WhiteHour, duty); LED_Driver_Channel_Set(LampChannel_1, LampCh1_33_Time_BL_WhiteMinute, duty); } else { LED_Driver_Channel_Set(LampChannel_1, LampCh1_30_Time_BL_GreenHour, duty); LED_Driver_Channel_Set(LampChannel_1, LampCh1_32_Time_BL_GreenMinute, duty); LED_Driver_Channel_Set(LampChannel_1, LampCh1_31_Time_BL_WhiteHour, 0u); LED_Driver_Channel_Set(LampChannel_1, LampCh1_33_Time_BL_WhiteMinute, 0u); } } void BackLight_Off(void) { PWM_Channel_Set_Duty(BL_LED_BLUE_CHL, 0u); PWM_Channel_Set_Duty(BL_LED_WHITE_CHL, 0u); BackLight_Odo_Set(BL_DAY_MODE, LED_OFF); BackLight_AirTemp_Set(BL_DAY_MODE, LED_OFF); BackLight_InforSt_Set(BL_DAY_MODE, LED_OFF); BackLight_Time_Set(BL_DAY_MODE, LED_OFF); BackLight_BackGround_Set(LED_OFF); } void BackLight_Service(uint8_t cyc) { if(SYS_OPR_STAT_IGN_ON) { if(Get_curPage() == Page_SelfCheck) { BL_Mode = BL_DAY_MODE; } else { if(BL_ChecktoDis_Flag == 0u) { BL_ChecktoDis_Flag = 1u; if(Get_OPT3004Data() < 180) { BL_Mode = BL_NIGHT_MODE; } else if(Get_OPT3004Data() > 200) { BL_Mode = BL_DAY_MODE; } else { BL_Mode = BL_DAY_MODE; } } else { if(Get_OPT3004Vld() == 0u) { BL_Fitter = 0u; BL_Mode = BL_DAY_MODE; } else { if(BL_Mode == BL_DAY_MODE) { if(Get_OPT3004Data() < 180) { if(BL_Fitter < 2000u) { BL_Fitter += cyc; } else { BL_Fitter = 0; BL_Mode = BL_NIGHT_MODE; } } } else { if(Get_OPT3004Data() > 200) { if(BL_Fitter < 5000u) { BL_Fitter += cyc; } else { BL_Fitter = 0; BL_Mode = BL_DAY_MODE; } } } } } if(BL_Mode == BL_DAY_MODE) { PWM_Channel_Set_Duty(BL_LED_BLUE_CHL, 0u); PWM_Channel_Set_Duty(BL_LED_WHITE_CHL, 500u); BackLight_Odo_Set(BL_DAY_MODE, LED_ON); // BackLight_AirTemp_Set(BL_DAY_MODE, LED_ON); BackLight_InforSt_Set(BL_DAY_MODE, LED_ON); BackLight_Time_Set(BL_DAY_MODE, LED_ON); BackLight_BackGround_Set(LED_ON); } else { PWM_Channel_Set_Duty(BL_LED_BLUE_CHL, 500u); PWM_Channel_Set_Duty(BL_LED_WHITE_CHL, 0u); BackLight_Odo_Set(BL_NIGHT_MODE, LED_ON); // BackLight_AirTemp_Set(BL_NIGHT_MODE, LED_ON); BackLight_InforSt_Set(BL_NIGHT_MODE, LED_ON); BackLight_Time_Set(BL_NIGHT_MODE, LED_ON); BackLight_BackGround_Set(LED_ON); } } } else { if(Get_curPage() == Page_SWDisplay) { PWM_Channel_Set_Duty(BL_LED_BLUE_CHL, 0u); PWM_Channel_Set_Duty(BL_LED_WHITE_CHL, 0u); BackLight_Odo_Set(BL_DAY_MODE, LED_OFF); // BackLight_AirTemp_Set(BL_DAY_MODE, LED_OFF); BackLight_InforSt_Set(BL_DAY_MODE, LED_ON); BackLight_Time_Set(BL_DAY_MODE, LED_OFF); } else { BackLight_Off(); } } } uint8_t Get_BackLight_Mode(void) { return BL_Mode; } 代码注释
最新发布
08-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值