Java I/O通过输入输出流进行文件读写(二)用户界面

来源:互联网 发布:开淘宝店要考试吗 编辑:程序博客网 时间:2024/04/30 15:11

       前天写了一篇技术博客把之前自己写的Java I/O读写文件的代码上传了,但后来想想并不妥。东西是能够用了,但是并不是真正意义上的产品。所以今天给前天的不足加上了一些代码,把文件读写真正做成一个产品,一个傻瓜式的谁都能用的产品。

        在这个文件读写的产品上我加上了UI(用户界面):

                   

虽然界面丑了点,但也算是一个入门的产品了。下面上代码:

首先是UI:

package com.czj_IO;import java.awt.FlowLayout;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextArea;public class JavaIOUI extends JFrame {public static void main(String[] args) {JavaIOUI jui = new JavaIOUI();jui.init();}/** * 初始化界面的方法 */private void init() {this.setTitle("文件读写");this.setSize(500, 300);this.setLocationRelativeTo(null);this.setDefaultCloseOperation(3);this.setLayout(new FlowLayout());addBackground();JLabel j1 = new JLabel("    文件名 :        ");JTextArea jp1  = new JTextArea(2, 30);jp1.setText("这是文件读写实例.txt");JLabel j2 = new JLabel("文件绝对路径:");JTextArea jp2  = new JTextArea(2, 30);jp2.setText("E://");JLabel j3 = new JLabel("     内容  :          ");JTextArea jp3  = new JTextArea(5, 30);jp3.setText("这是文件读写实例的文件内容。");this.add(j1);this.add(jp1);this.add(j2);this.add(jp2);this.add(j3);this.add(jp3);JButton jb1 = new JButton("写入文件");jb1.setBorderPainted(false);jb1.setFocusable(false);this.add(jb1);JButton jb2 = new JButton("读取文件");jb2.setBorderPainted(false);jb2.setFocusable(false);this.add(jb2);JLabel j4 = new JLabel("(必须已有该文件)");this.add(j4);JLabel j5 = new JLabel();this.add(j5);//给按钮添加监听器IOListener il = new IOListener(j5,jp1,jp2,jp3,jb1,jb2);jb1.addActionListener(il);jb2.addActionListener(il);this.setVisible(true);}/** * 添加背景的方法 */private void addBackground(){ImageIcon image=new ImageIcon(this.getClass().getResource("背景1.jpg"));JLabel jlaImage=new JLabel(image);jlaImage.setBounds(0, -35, image.getIconWidth(), image.getIconHeight());this.getLayeredPane().add(jlaImage,new Integer(Integer.MIN_VALUE));JPanel contentpane=(JPanel)this.getContentPane();contentpane.setOpaque(false);}}

 接下来是监听器:

package com.czj_IO;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JTextArea;public class IOListener implements ActionListener{private JTextArea jp1,jp2,jp3;private JButton jb1,jb2;private JLabel j5;public IOListener(JLabel j5, JTextArea jp1,JTextArea jp2,JTextArea jp3, JButton jb1, JButton jb2){this.jp1 = jp1;this.jp2 = jp2;this.jp3 = jp3;this.jb1 = jb1;this.jb2 = jb2;this.j5 = j5;}@Overridepublic void actionPerformed(ActionEvent e) {if(e.getActionCommand().equals(jb1.getText())){TestIO ti = new TestIO();try {ti.writeFile(jp3.getText(),jp2.getText()+jp1.getText());j5.setText("文件成功写入!");} catch (Exception e1) {e1.printStackTrace();}//System.out.println(jp3.getText());//System.out.println(jp2.getText()+jp1.getText());}else if(e.getActionCommand().equals(jb2.getText())){TestIO ti = new TestIO();ti.readFile(jp2.getText()+jp1.getText());j5.setText("文件成功读出!已在控制台输出!");}}}

 再接下来就是上篇博客里已经有的主代码了:

package com.czj_IO;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;public class TestIO {/** * 读文件的方法 * @param fName文件绝对路径 */public void readFile(String fName){try {FileInputStream  fis = new FileInputStream(fName);int n=fis.read();//读取下一个字节//循环读写while(n!=-1){System.out.println("读到的字节是"+n);    n = fis.read();}fis.close();//关闭输入流} catch (Exception e) {e.printStackTrace();}}/** * 写文件的方法 * @param msg写入的内容 * @param s文件绝对路径 * @throws Exception抛出异常 */public void writeFile(String msg,String s) throws Exception{try {FileOutputStream fos = new FileOutputStream(s,false);byte[] b = msg.getBytes();//得到组成字符串的字节fos.write(b);fos.close();//关闭输出流 } catch (FileNotFoundException e) {e.printStackTrace();}}public static void main(String[] args) {TestIO tjm = new TestIO();tjm.readFile("E://类与对象总结.txt");try {//此语句运行两次必须改写入文件的文件名或删除上次写入的文件,否则报错(已有该文件)tjm.writeFile("hello! 你好!~~~~", "E://写入的文件1.txt");} catch (Exception e) {e.printStackTrace();}}}

 

 

    有些时候别人并不在意你写了多少代码,只在意你通过代码实现了什么功能。而要提现你所实现的东西就必须把这个东西做成可视可用的产品。

 

                                                                                                                            梣梓cenzi

                                                                                                                           2015-0506

原创粉丝点击