




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JavaSE01 UltraPad工具定义基础ContentUltraPad工具JavaSE01 UltraPad工具定义基础ContentUltraPad工具添加Content类的文本设置方法和十六进制字符设置 UltraPad工具增加Content类获取十六进制数据的字符串表示UltraPad工具完成UltraPad(包括新建、打开、保存功能图-图-图-图-图-图-文档模式切换功能指的是普通文本,二进制文本(所谓二进制文本是指普通文本对应的二进制编码所形成的文本),十六进制文本图-文档模式切换功能指的是普通文本,二进制文本(所谓二进制文本是指普通文本对应的二进制编码所形成的文本),十六进制
2、文本(所谓的十六进制文本是指普通文本采用默认字符集进行十六进制编码后所形成的文本)三者之间的切换,文本模式和对应的数据样例如下表所示:各种模式样式数图-图-图-图-图-1.2图-文本文档的内容使用byte字节编码:图-1.2图-文本文档的内容使用byte字节编码:public class private byte public String toString() return Arrays.toString(data);在nen类中覆盖public String toString() return Arrays.toString(data);在nen类中覆盖qual方法,aa数组的每一项内容都
3、相等两个onen对象使用quals进行比较的时候返回值才是rue:publicequals(Object obj) (obj instanceof Contentcontent=(Content) if (data = null | content.data = return false;if (data.length!= content.data.length) return for i= 0; i data.length; i+) (datai != return false; else returnpublic void save(String fileName) FileUtils.s
4、aveFile(data, public void load(String data = 1.3public void load(String data = 1.3public class Content private byte public Content() publicContent(bytethis.data = data) public String returnpublicequals(Object obj) instanceof Content) Content content = (publicequals(Object obj) instanceof Content) Co
5、ntent content = (Content) (data = null | content.data = return false;(data.length != content.data.length) return false;for i = 0; i data.length; if (datai != content.datai)return false;return else return publicvoid save(String public void load(String data = public class Content private byte public C
6、ontent()public class Content private byte public Content() public Content(byte this.data = public String return tanceof Content) Content content = (Content) (data = null | content.data return (data.length != content.data.length) return for i = 0; i data.length; if(datai!=content.datai) return false;
7、return else return public void save(String FileUtils.saveFile(data, public void load(String data public class FileUtils *param fileNamepublic class FileUtils *param fileNamereturn public ic byte loadFile(String try 和写sFileraf sFile(fileName, byte data = new byte() /将data.lengthfileNamedatareturn dat
8、a; catch (Exception e) throw new param fileNamepublic ic void try yte data, StringFile file = new File(fileName);if (file.exists() sFile raf new sFile(fileName,sFile raf new sFile(fileName,/ 将 data.length 个字节从data 数组写入到fileName catch (Exception e) throw new 1.4UltraPad工具中记事内容类Content的基础定义中,定义了toStin
9、g方法,equals方oad方法,现需要使用Junit新建类public class TestContent public void testToString() Content content new Content(new byte 97, 98, 99, 100, 101 public void Contentcontent1 Content(new byte 97, 98, 99, 100, 101 ); Content content2 =Contentpublic void Contentcontent1 Content(new byte 97, 98, 99, 100, 101
10、); Content content2 =Content(new byte 97, 98, 99, 100, 101 ln(content1= public void testLoad() Content content = new public void Content content101 byte 97, 98, 99, importpublic class public void testToString() Contentcontent Content(new byte= 97, 98, public class public void testToString() Contentc
11、ontent Content(new byte= 97, 98, public void Contentcontent1 Content(new byte 98, Contentcontent2 Content(new byte= 97, 98, ln(content1 public void testLoad() Contentcontent=new Content(); public void Content contentContent(new byte 97, 98, 99, 100, 101 2.2 方案。不同模式的文本转成aa数组。在Conen类添加文本设置方法(T),实现不同模式
12、下的文本转换成aa数组;添加十六进制字符设置方法(不同模式的文本转成aa数组。在Conen类添加文本设置方法(T),实现不同模式下的文本转换成aa数组;添加十六进制字符设置方法(HSr)实现把十六进制模式的字符串转换成data图-public class Content privatemode= public ic finalMODE_TEXT = public ic finalMODE_HEX=private ic final String HEX_STRING = publicvoid setText(String text) (mode = MODE_TEXT/如果模式是普通文本 dat
13、atext.getBytes();/本文内容转成字节数组 else if (mode = MODE_HEX) /如果模式是16param hexStr 16进制形式的字符串(例如:61 62 63 64 private void setHexStr(String hexStr) if (hexStr = null | hexStr.length() = 0) String strArr = hexStr.toLowerCase().split(s);bytefor newData = new i = 0; i data.length; i+) if (strArri.length() != 2
14、)return;/程序返回String hStr = String lStr = h = HEX_STRING.indexOf(hStr);l = HEX_STRING.indexOf(lStr);if (h != -1 & l != -1) newDatai = (byte) (h * 16 + else /不能HEX_STRINGnewDatai = datai;data = void testSetString() data = void testSetString() Content content = new Content(); public void testSetHex() C
15、ontent content = new content.setText(616263642.3private publics public private mode = ic final ic ic finalMODE_TEXT=MODE_HEX=String HEX_STRING = private void setHexStr(String hexStr) if (hexStr = null | hexStr.length() = 0) private void setHexStr(String hexStr) if (hexStr = null | hexStr.length() =
16、0) String strArr =byte newData = new for i=0;inewData.length; if (strArri.length() != 2) String hStr = String lStr = if = = != -1 & l != -1) newDatai = (byte) (h else +newDatai = data = void setText(Stringif (mode = MODE_TEXT) data = else if (mode = public void testSetString() Content content = new
17、Content(); public void testSetString() Content content = new Content(); void testSetHex() Content content = new content.setText(61626364public class private private public spublic byte= ic finalic finalMODE_TEXT=MODE_HEX=private ic finalString HEX_STRING = public String return new publicequals(Objec
18、t if (obj instanceof Content)Content content = (Content) (data = null | content.data = return false;Content content = (Content) (data = null | content.data = return false;(data.length return content.data.length) for i = 0; data.length; if (datai return else return public Content() publicContent(byte
19、 this.data = data;data) mode) public void setMode( this.mode= public return public if setText(String=MODE_TEXT)= else if(mode=MODE_HEX) public void save(String FileUtils.saveFile(public void save(String FileUtils.saveFile(data, public void load(String data = private void setHexStr(String hexStr) if
20、(hexStr = null | hexStr.length() = 0) String strArr =byte newData = new for i=0;inewData.length; if (strArri.length() != 2) String hStr = String lStr = if = = != -1 & l != -1) newDatai = (byte) (h * else newDatai = + data = importpublic class public void testToString() Content content =Content(new b
21、yte 97, 98, public class public void testToString() Content content =Content(new byte 97, 98, public void Content content1 = Content(newbyte 97,98, Contentcontent2 Content(new byte= 97, 98, ln(content1 public void testLoad() Contentcontent=new Content(); public void Content content101 Content(new by
22、te 97, 98, public void Content content = new Content content = new content.setText(Content content = new content.setText(61 62 63 64 2.4。图-public private ic finalMODE_BINARY = ic final String BINARY_STRING = public void setBinaryStr(String binaryStr) if (binaryStr = null | binaryStr.length() = 0) ok
23、 = String strArr = ok = String strArr = byte newData = new for i = 0; i strArr.length; i+) d = parseBinaryByteString(strArri); (d = -1) ok = newDatai = (byte) if (ok) data = privateparseBinaryByteString(String bs) (bs.length8)/判断是否是8位,如果不是返回-1 return -1;d = for i = 0; i 8; i+) String c = v = BINARY_
24、STRING.indexOf(c);if(v1)/在BINARY_STRING字符串中没有查找到c变量 return -1;/返回-1d = 2 * d + v;return public void setText(String if (mode = MODE_TEXT) data = return public void setText(String if (mode = MODE_TEXT) data = else if(mode= else if (mode = MODE_BINARY) public class Content private byte privatemode = s=
25、 MODE_HEX = MODE_BINARY = private private ic finalic HEX_STRING = BINARY_STRING = public String return new public if (obj instanceof Content)Content content = (Content) (data = null | content.data = return false;(Content content = (Content) (data = null | content.data = return false;(data.length ret
26、urn content.data.length) for i = 0; data.length; if (datai return else return public Content() publicContent(byte this.data = data;data) mode) public void setMode( this.mode= public return public void setText(String if (mode = MODE_TEXT) data = else if(mode= else if (mode = MODE_BINARY) public void
27、save(String FileUtils.saveFile(public void save(String FileUtils.saveFile(data, public void load(String data = public void setHexStr(String hexStr) if (hexStr = null | hexStr.length() = 0) ok = StringstrArr=hexStr.toLowerCase().split(s); byte newData = new bytestrArr.length;for i = 0; i strArr.lengt
28、h; i+) if (strArri.length()!= ok = false; String hStr = String.valueOf(strArri.charAt(0); String lStr = if = = = -1 | l = -1) ok = newDatai = (byte) (h * 16 + if (ok) data = ln(setHexStr: public void setBinaryStr(String binaryStr) (binaryStr = null | binaryStr.public void setBinaryStr(String binaryS
29、tr) (binaryStr = null | binaryStr.length() = 0) ok = StringstrArr =byte newData = new for i = 0; i strArr.length; i+) d = if (d = -1) ok = newDatai = (byte) if (ok) data = privateif(bs.length()!=8) return -1;d = for i = 0; i 8; i+) Stringc=String.valueOf(bs.charAt(i); v = BINARY_STRING.indexOf(c);if
30、 (v = -return -1; d = 2 * d + v;return 法在Content类中的属性和方法如下类图-11(红框内为新增方法,篮筐内为要修改的方法)图-法在Content类中的属性和方法如下类图-11(红框内为新增方法,篮筐内为要修改的方法)图-private String StringBuildersb =for i = 0; i data.length; i+) String hex =eger.toHexString(datai & if(hex.length1/如果hex的长度等于sb.append(hex).append(if(i 1160sb.append(he
31、x).append(if(i 1160/每16项进行换行 returnpublic String String str =null;if (mode = MODE_TEXT) else= new String(data);/把使用data构造String=(mode = MODE_HEX) /如果模式是16进制文本 (mode = MODE_BINARY) str = toBinaryString();/调用toBinaryStringreturn public void Contentcontentnew Content(); 3.3public String StringBuildersb
32、 =3.3public String StringBuildersb =for i = 0;i & String hex = if (hex.length()= hex = 0 + 0) if (i + 1) % 16 return public String String str =null;if (mode = MODE_TEXT) elseelse= new String(data); if (mode= MODE_HEX)= if (mode = = returnpublic void Contentcontent=new Content(); public void Contentc
33、ontent=new Content(); import public class Content private byte private mode = sMODE_TEXT = MODE_HEX = MODE_BINARY = private private finalfinalString HEX_STRING = String BINARY_STRING = publicequals(Object obj) instanceof Content) Content content = (Content) if (data = null | content.data = null) ret
34、urn false;if (data.length != content.data.length) return false;for i = 0; i data.length; i+) if (datai != return elseif (datai != return else return public Content() data) publicContent(byte this.data = data;mode) public void setMode( this.mode= public return public String String str =null;if (mode
35、= MODE_TEXT) elseelse= new String(data); if (mode= MODE_HEX)= if (mode = MODE_BINARY) str = return public void setText(String text) if (mode = MODE_TEXT) data = text.getBytes(); else ifif (mode = MODE_TEXT) data = text.getBytes(); else if(mode=MODE_HEX) else if (mode = MODE_BINARY) public void save(
36、String FileUtils.saveFile(data, public void load(String data = public void setHexStr(String hexStr) if (hexStr = null | hexStr.length()=0) ok = StringstrArr=hexStr.toLowerCase().split(s); byte newData = new bytestrArr.length;for i = 0; i strArr.length; i+) (strArri.length() != 2)ok = false;String hS
37、tr = String.valueOf(strArri.charAt(0); String lStr = if = = = -1 | l = -1) ok = newDatai = (byte) (h * 16 + if (ok) data = ln(setHexStr:if (ok) data = ln(setHexStr:+public void setBinaryStr(String binaryStr) if (binaryStr = null | binaryStr.length() = 0) ok = StringstrArr=binaryStr.toLowerCase().spl
38、it(s); byte newData = new bytestrArr.length;for i = 0; i strArr.length; i+) d = if (d = -1) ok = false; newDatai = (byte) if (ok) data = ln(setBinaryStr:+privateparseBinaryByteString(Stringif(bs.length()!=8) return -1;d = for i = 0; i 8; i+) Stringc=String.valueOf(bs.charAt(i); v = BINARY_STRING.ind
39、exOf(c);if (v = -return -1; d = 2 * d + v;return public String StringBuildersb =new for return public String StringBuildersb =new for i = 0;i & String hex = if (hex.length()= hex=0+hex; if (i + 1) % 16 =0) return public class public void Content content= new new byte 97, 98, 99, 101 public void Cont
40、entcontent1 =new byte 97, 98, 99, 100, 101 Content content2= Content( byte 97, 98, 99, public void testLoad() Contentpublic void testLoad() Contentcontent=new Content(); public void testSave() Content content = newContent( byte 97, 98, 99, 101 public void Content content = new public void testSetHex
41、() Content content = new Content(); content.setText(61626364public void Content content= new 3.4图-public String StringBuilder sb = new for i = 0; i data.length; i+) & binary 八位的补j= binary.length(); j 8; for binary = 0 +sb.append(binary).append();if (i + 1) % 16 = 0)sb.append(binary).append();if (i +
42、 1) % 16 = 0) return public void Contentcontentnew Content(); public class Content private byte privatemode = ssMODE_TEXT = MODE_HEX = MODE_BINARY = sprivate private finalfinalString HEX_STRING = String BINARY_STRING = publicif equals(Object obj) instanceof Content) Content content = (Content) (data
43、 = null | content.data = return false;(data.length != return content.data.length)(data = null | content.data = return false;(data.length != return content.data.length) for i = 0; data.length; if (datai return else return public Content() data) publicContent(byte this.data = data;public void setMode(
44、 this.mode= public return public String String str =null;if (mode = MODE_TEXT) elseelse= new String(data); if (mode= MODE_HEX)= if (mode = MODE_BINARY) str = return public void setText(String if str = return public void setText(String if (mode = MODE_TEXT) data = else if(mode= else if (mode = MODE_B
45、INARY) public void save(String FileUtils.saveFile(data, public void load(String data = public void setHexStr(String = if (hexStr =null | hexStr.length() strArr =byte newData = new for i = 0; i strArr.length; i+) (strArri.length() != 2)ok = false;String hStr = String.valueOf(strArri.charAt(0); String
46、 lStr = if = = = -1 | l = -1) ok = newDatai = (byte) (h * ok = newDatai = (byte) (h * 16 + if (ok) data = ln(setHexStr:+public void setBinaryStr(String binaryStr) if (binaryStr = null | binaryStr.length() = 0) ok = StringstrArr=binaryStr.toLowerCase().split(s); byte newData = new bytestrArr.length;f
47、or i = 0; i strArr.length; i+) d = if (d = -1) ok = false; newDatai = (byte) if (ok) data = ln(setBinaryStr:+privateparseBinaryByteString(Stringif(bs.length()!=8) return -1;d = for i = 0; i 8; i+) String c = v=BINARY_STRING.indexOf(c); if (v = String c = v=BINARY_STRING.indexOf(c); if (v = -1)return
48、 -d = 2 * d + return public String StringBuildersb =new for i = 0;i & String hex if (hex.length()= hex = 0 + sb.append(hex).append(); if (i + 1) % 16 = 0) return public String StringBuilder sb = new & for i= 0; i data.length; i+) String binary j= binary.length(); j 0 & & fileName.length() 0) != publ
49、ic void load() String fileName = (fileName != null & fileName.length() content = new Content();/创建空文本内容类对象 content.load(fileName);/加载文本内容if | | else modeOption = Stringtextcontent.toString(); if (text != null) 4.3public public ltraPad ic void main(String args) 4.3public public ltraPad ic void main(S
50、tring args) private UltraPadFrame private Content =private private ic finalic TEXT_MODE_OPTIONS privatemodeOption public UltraPad() view=new UltraPadFrame(this); content = new Content();public returnpublic void content =new public returnpublic void content =new public void save() text = fileName & (
51、text != &text.length()& fileName.length() 0) public void load() String fileName = (fileName!=null &fileName.length()0) content=new Content(); if | | | | | else modeOption=BINARY_MODE_OPTIONS;Stringtext=content.toString(); if (text != null) public void for (LookAndFeelInfo :UltraPadnotepad=new UltraP
52、ad(); public ltraPadFrame extends JFrame private public ltraPadFrame extends JFrame private private JTextArea editor;private JLabel fileLabel;private String fileName;public return privatechange=private void setChange( this.change = public String getTextContent() returnpublic void setTextContent(publ
53、ic String getTextContent() returnpublic void setTextContent(String editor.setText(txt);/给文本框设置内public UltraPadFrame(UltraPad this.pad = notepad; setTitle(SecretNotepad);600);d= Toolkit.getDefaultToolkit().getScreenSize(); setLocation(d.width- getWidth() / 2,(d.height - getHeight() / setDefaultCloseO
54、peration(JFrame.EXIT_ON_CLOSE); private void init() ContainercontentPanegetContentPane();newCmd=new JButton(New); newCmd.setSize(100, 100);newCmd.setBounds(20, 10, 70, 70); openCmd = new openCmd.setSize(100openCmd = new openCmd.setSize(100,100);openCmd.setBounds(100,10, 70, saveCmd=new JButton(Save)
55、; saveCmd.setSize(100, 100);saveCmd.setBounds(180, 10, modeCmd=new JButton(Text); modeCmd.setSize(100, 100);modeCmd.setBounds(260,10, 70, fileLabel = new JLabel( fileLabel.setBounds(15,550, 460, 10); editor = new JScrollPanesp=new JScrollPane(editor); sp.setBounds(15, 90, 460, 450); :editor.addKeyLi
56、stener(newKeyAdapter()public void keyPressed(KeyEvent e) :openCmd.addActionListener(new public void actionPerformed(ActionEvent:openCmd.addActionListener(new public void actionPerformed(ActionEvent option = (change) option = (0 = option) JFileChooserfc=new JFileChooser(); File file = (file != null)
57、fileName = file.getPath(); :saveCmd.addActionListener(new public void actionPerformed(ActionEvent e) if saveCmd.addActionListener(new public void actionPerformed(ActionEvent e) if (fileName = null) JFileChooserfc=new JFileChooser(); File file = fc.getSelectedFile();if (file != null) fileName = file.
58、getPath(); else :newCmd.addActionListener(newActionListener() public void actionPerformed(ActionEvent option=0; (change) option = 确认, JOptionPane.YES_NO_OPTION,if (0= fileName = null; public class Content private byte private mode = sMODE_TEXT = MODE_HEX = MODE_BINARY = private private finalfinalStr
59、ing HEX_STRING = String BINARY_STRING = publicequals(Object obj) instanceof Content) Content content = (Content) (data = null | content.data = return false;(data.length != content.data.length) return for i=0;idata.length; if (datai != content.datai) return false;return else return public Content() p
60、ublic Content(byte this.data = return public Content() public Content(byte this.data = public void setMode( this.mode= public return public String String str =null;if (mode = MODE_TEXT) elseelse= new String(data); if (mode= MODE_HEX)= if (mode = = returnpublic void setText(String if (mode = MODE_TEX
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 渝中区危险化品运输合同6篇
- 2024届高考语文专题复习弹琴三境界 写作指导
- 餐厅窗口承包合同
- 2025年青海道路运输从业人员资格考试内容有哪些
- 公司和个人劳务合同
- 学校食堂档口承包合同
- 会议邀请函模板表
- 公司财务管理规章制度的修订与完善建议
- 企业高管聘用合同
- 农田租地合同协议书
- 2025届山东核电校园招聘正式启动笔试参考题库附带答案详解
- 2025安徽芜湖市运达轨道交通建设运营限公司招聘129人高频重点模拟试卷提升(共500题附带答案详解)
- 2025年湖南科技职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2024年安徽省高校分类考试对口招生语文试卷真题(含答案)
- 2025年苏州健雄职业技术学院高职单招语文2018-2024历年参考题库频考点含答案解析
- 2025年八省联考高考语文试题真题解读及答案详解课件
- 《电力系统综合实践》课程教学大纲
- 施工安全生产风险分级管控和隐患排查治理双重预防机制建设实施方案
- 中国高血压防治指南(2024年修订版)解读课件
- 酒店安全紧急疏散预案
- 2024年度咨询服务合同:企业管理咨询服务
评论
0/150
提交评论