tts8.0课件课后练习代码经典案例day_第1页
tts8.0课件课后练习代码经典案例day_第2页
tts8.0课件课后练习代码经典案例day_第3页
tts8.0课件课后练习代码经典案例day_第4页
tts8.0课件课后练习代码经典案例day_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论