前天写了一篇技术博客把之前自己写的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; } @Override public 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
相关推荐
在这个项目中,开发者通过I/O流实现了对文件的读写功能,从而构建了一个简单的通讯录系统。这个系统允许用户进行添加、删除、修改和查看联系人信息的操作,所有交互都在命令行或控制台界面进行,没有使用图形用户...
Java I/O(输入/输出)库在其中起着至关重要的作用,因为它允许我们高效地读取、写入和处理文件系统数据。本篇文章将深入探讨如何利用Java I/O在Android上实现高效的文件搜索功能。 1. **Java I/O基础** - Java I/...
在Java编程中,处理输入输出(I/O)是一项常见的任务。这段代码`new BufferedReader(new InputStreamReader(conn.getInputStream()))`实际上展示了Java中如何通过组合不同的流类来增强输入流的功能。 **思考点**:这...
Java程序设计中,与系统输入/输出界面进行数据通信是通过输入输出流(I/O流)实现的。I/O流是Java的核心特性之一,允许程序读取数据源(如键盘、文件)并写入数据目标(如显示器、文件)。在Java 2中,这个过程尤其...
在Java编程中,输入输出流(I/O流)是处理数据读写的核心技术之一。它提供了一种在程序与外部资源(如文件、网络连接等)之间传输数据的方式。理解并掌握输入输出流的概念及其实现方法对于任何Java开发者来说都是至...
Java的I/O框架设计灵活,支持多种数据流操作,包括顺序访问、随机访问、二进制读写、字符流处理等,这使得Java成为实现文件转换任务的理想选择。 在本例中,主要关注于从特定目录下的URL文件(通常以.url为扩展名)...
这个任务涉及到Java的核心特性,包括异常处理、输入输出流以及图形用户界面(GUI)的使用。 异常处理是Java中的关键机制,用于处理程序执行过程中可能出现的错误或不正常情况。在Java中,异常是通过`try-catch`块来...
在编程领域,文件输入输出(I/O)是处理数据存储和检索的核心部分。在这个场景中,我们关注的是“文件输入输出缓冲流”,这是Java或C++等编程语言中常用的概念,用于提高文件读写效率。缓冲流允许我们将数据批量处理...
在Java编程语言中,开发一个酒店管理系统涉及到许多关键知识点,其中输入输出(I/O)处理是核心部分之一,特别是与文本文件的交互。这个系统的主要功能包括读取、写入和修改存储在文本文件中的酒店相关信息。下面...
### Java 输入输出流实验知识点详解 #### 一、概述 在进行Java编程时,经常会遇到需要从文件中读取数据或将数据写入文件的情况。此时,就需要使用到Java中的输入/输出流(I/O流)。Java中的I/O流提供了一种有效的...
Java的`FileInputStream`和`FileOutputStream`类用于读写二进制文件,而`BufferedInputStream`和`BufferedOutputStream`则可以提高读写性能,通过缓冲数据来减少磁盘I/O次数。 6. **异常处理**:在处理I/O流时,...
在Java编程语言中,读取和写入文本文件是常见的任务,这在处理数据、日志记录或构建用户界面时尤为关键。以下是一份详细的知识点解析,将帮助你理解和应用Java中的文件读写操作。 1. **Java I/O 基础** Java 提供...
文件复制过程涉及输入输出流(I/O流)的概念,Java中利用I/O流进行数据的读取和写入操作。流(Stream)是Java中处理I/O操作的核心,它允许数据在内存和设备间传输。Java中的流主要分为两大类:输入流和输出流。输入...
实验报告“JAVA_实验报告二:异常处理及输入输出流技术实验”主要涵盖了Java编程中的异常处理机制和输入输出流技术。在Java中,异常处理是程序错误处理的关键部分,而输入输出流则是数据传输的基础。 一、异常处理 ...
- **2.6 GUI输出流**:介绍如何为输出流设计一个图形用户界面,使输出流的操作更加直观。 #### 四、输入流 - **3.1 InputStream类**:所有输入流的基类,提供了基本的字节读取功能。 - **3.2 read()方法**:使用`...
总结,Java网络文件传输涉及网络通信协议设计、数据序列化、输入输出流的使用等多个方面。通过精心设计的协议和有效的实现,可以构建出高效、可靠的文件传输系统。在实际开发中,还需要根据具体需求进行优化和扩展,...
本项目"星际争霸游戏"就是这样一个例子,它巧妙地融合了Java Swing和AWT库进行界面设计,利用IO输入输出流处理数据存储,以及通过Socket和UDP协议实现网络通信,从而打造了一个具备单人模式和多人合作模式的游戏平台...
在这个Java项目中,开发者创建了一个功能,使得程序能够读取、写入和管理INI文件,同时结合了Swing组件来提供用户界面,使得用户可以直接在图形界面上进行文件操作。 1. **INI文件结构**: INI文件由键值对组成,...
Java提供了丰富的I/O类库,如FileInputStream、FileOutputStream、BufferedReader和PrintWriter等,这些类支持对文件进行读写操作。 2. **NIO(New IO)**:Java的NIO(非阻塞I/O)API提供了一种更高效的方式来处理...