`
永远吃不饱
  • 浏览: 10146 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

io流的简单应用2

阅读更多
   此记事本有打开和保存两个功能。
   通过io流中的FileInputStream和JFileChooser等进行操作。
   首先在窗口上建立一个JTextArea编辑文件内容。
    public class JS extends JFrame {

public static void main(String[] args) {
JS js = new JS();
js.JSUI();
}

public void JSUI() {
this.setTitle("记事本");
this.setSize(400, 400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JMenuBar jmb = new JMenuBar();
JMenu jm = new JMenu("文件");
jmb.add(jm);

final JMenuItem jmiOpen = new JMenuItem("打开");
jmiOpen.setActionCommand("open");
jm.add(jmiOpen);

final JMenuItem jmiSave = new JMenuItem("保存");
jmiSave.setActionCommand("save");
jm.add(jmiSave);

this.setJMenuBar(jmb);

final JTextArea jta = new JTextArea();
// 添加滚动条
JScrollPane jsp = new JScrollPane(jta);
this.add(jsp);

this.setVisible(true);
}
    }
    菜单的设置有JMenuBar、JMenu和JMenuItem三个类。
     1.JMenuBar是菜单栏的实现,包含JMenu,使用setMenuBar()来设置窗口的菜单栏。
     2.JMenu是实现一个包含JMenuItem的弹出框。
     3.JMenuItem是菜单中的项的实现。菜单项的本质上是位于列表中的按钮。
     添加菜单项的动作监听器。
     ActionListener clis = new ActionListener() {
     public void actionPerformed(ActionEvent e) {
String str = e.getActionCommand();
if ("open".equals(str)) {
try {
                //JFileChooser是一个针对用户主目录的文件选择器。
JFileChooser jfs = new JFileChooser();

                //showOpenDialog弹出一个“Open File”文件选择器对话框
int n = jfs.showOpenDialog(null);

if (n == JFileChooser.APPROVE_OPTION) {
                //getSelectedFile()返回选中的文件。
                //getAbsolutePath()获得文件的绝对路径。
String num = jfs.getSelectedFile().getAbsolutePath();

FileInputStream file = new FileInputStream(num);
BufferedInputStream bf = new BufferedInputStream(file);

int b = bf.available();

byte[] bt = new byte[b];

file.read(bt);

String s = new String(bt);

jta.setText(s);

file.close();

}

       } catch (Exception ef) {
ef.printStackTrace();
}
} else if ("save".equals(str)) {

JFileChooser jfc = new JFileChooser();
                //设置文件类型框中的选择项。
FileNameExtensionFilter filter = new FileNameExtensionFilter("文本文档", "txt");
FileNameExtensionFilter file = new FileNameExtensionFilter("java文档", "java");

jfc.setFileFilter(filter);
jfc.setFileFilter(file);
//showSaveDialog()弹出一个“Save File”文件选择器对话框。
int num = jfc.showSaveDialog(null);
//APPROVE_OPTION判断当前选择为确认(yes、ok)按钮。0表示确认,1相反。
if(num == JFileChooser.APPROVE_OPTION){

String path = jfc.getSelectedFile().getAbsolutePath();
                //getFileFilter()返回当前选择的文件过滤器(即文件类型)。
//getDescription()返回文件描述。
String p = jfc.getFileFilter().getDescription();

if("文本文件".equals(p)&&!path.endsWith(".txt")){
path = path + ".txt";
}

if("java文件".equals(p)&&!path.endsWith(".java")){
path = path + ".java";
}

try {
FileOutputStream fos = new FileOutputStream(path);
BufferedOutputStream bos = new BufferedOutputStream(fos);

String sss = jta.getText();

byte[] b = sss.getBytes();

bos.write(b);
bos.flush();
bos.close();

} catch (Exception el) {
// TODO Auto-generated catch block
el.printStackTrace();
}
}

}
}

};

jmiOpen.addActionListener(clis);
jmiSave.addActionListener(clis);
   ********************************************************************
                int b = bf.available();
                byte[] bt = new byte[b];
file.read(bt);
         相对于
String str = "";
                int t = bf.read();
while(t!=-1)
{
         str = str + (String) t;
         t = bf.read();
}
没有打开或保存文件大小的限制。

      
分享到:
评论

相关推荐

    Java-Io流,练习

    Java的IO流是Java编程语言中的重要组成部分,它主要用于数据的输入和输出操作。在Java中,IO流被设计为处理任何类型的数据,包括字符、字节甚至对象。本练习旨在帮助初学者理解和掌握Java IO流的基础知识。 一、IO...

    JAVA IO流技术

    理解并熟练运用Java IO流技术是开发Java应用程序的关键,它能够有效地处理数据的读写操作,无论是简单的文本文件还是复杂的网络通信。在实际编程中,根据需求选择适当的流类型,结合处理流进行优化,可以构建出高效...

    java基础之IO流

    ### Java IO流基础知识点 #### 一、IO流概述 - **定义**:在Java中,IO流(Input/Output Streams)是用来处理输入输出的基本工具。流是一种有序的数据集合,通常涉及从源到目的地的数据传输过程。源可以是文件、...

    java IO流+socket源码 实现简单文本传输

    在这个示例中,我们将深入探讨如何利用Java IO流与Socket实现简单的文本传输。对于初学者来说,理解这两个概念及其交互是非常关键的。 首先,让我们来了解Java IO流。IO流在Java中用于读取和写入数据,它可以是文件...

    IO流三种流方式的文本文件的复制

    在Java编程语言中,IO流(Input/Output流)是用来处理数据输入与输出的重要工具。在文本文件的复制过程中,通常会用到三种主要的流类型:字节流(Byte Stream)、字符流(Character Stream)以及缓冲流(Buffered ...

    利用java的IO流写的一个记事本

    通过理解IO流的工作原理和使用技巧,开发者不仅可以创建这样的简单应用,还能进一步扩展到更复杂的文件管理和数据处理任务。在实际编程中,了解和熟练掌握Java IO流是提升程序效率和灵活性的关键。

    文档JAVA-IO流

    ### 文档JAVA-IO流 #### 一、IO流概述 1. **什么是IO** - I代表**输入**(input),O代表**输出**...通过上述知识点的学习,我们可以更好地理解和应用Java中的IO流技术,尤其是在处理文件读写以及文本处理方面。

    U盘背景修改工具 利用IO流写文件到U盘(只能用单个U盘)

    标题中的“U盘背景修改工具”是指一个...它涉及到的知识点包括IO流的使用、文件操作、错误处理以及简单的用户界面设计。虽然功能有限,但对于学习基础编程和理解文件系统操作的开发者来说,这是一个很好的实践项目。

    c#_文本IO流

    总的来说,C#的文本IO流提供了一套强大的工具,使得开发者能够高效、灵活地处理文本数据的输入输出,无论是简单的文件操作还是复杂的网络通信,都可以借助这些类来实现。通过理解`Stream`及其相关类的工作原理,我们...

    IO流读写excel文档,并写入数据库

    在读取Excel时,可以借助Apache POI库,它提供了一套API,使得通过IO流操作Excel文件变得简单。 Apache POI是一个开源的Java库,它允许开发人员创建、修改和显示Microsoft Office格式的文件,包括Excel(XLS和XLSX...

    java IO流详解

    ### Java IO流详解 #### 一、流的概述与分类 在Java中,流是一种抽象概念,用于描述数据从一个地方传输到另一个地方的过程。...无论是简单的文件复制还是复杂的目录拷贝,都能够通过Java IO流轻松实现。

    android 数据IO流实例

    在Android开发中,数据输入/输出(Input/...无论是简单的文本文件,还是复杂的数据结构,都能通过适当的IO流组合来完成读写任务。在实践中,根据需求选择合适的流类型,并考虑性能优化,如使用缓冲,是至关重要的。

    C#部分IO流的例子......

    本篇文章将详细探讨C#中的部分IO流及其应用实例,帮助开发者更好地理解和运用这一关键技术。 首先,C#中的IO流分为两大类:字节流(Byte Stream)和字符流(Character Stream)。字节流处理的是原始的二进制数据,...

    Java快递e栈IO版(控制台简易版)

    总的来说,"Java快递e栈IO版(控制台简易版)"项目结合了Java基础的IO流操作和集合框架的使用,通过控制台界面实现了一个简单的快递管理系统。这不仅涉及到文件的读写,还包括数据结构的选择和操作,以及用户交互设计...

    struts2+jxl图片上传,io流

    在Action的`upload()`方法中,可以使用Apache Commons IO库(通常已包含在Struts2中)处理文件流,将上传的图片保存到服务器的某个目录: ```java try { File saveDir = new File("uploads"); if (!saveDir....

    io流复制文本文件图解

    在深入探讨“io流复制文本文件图解”的知识点前,我们先来理解一下IO流的基本概念。IO(Input/Output)流是Java编程语言中...因此,建议开发者们多加练习,熟悉不同场景下的IO流应用技巧,以应对实际项目中的各种需求。

    java的IO流实现文件复制20190726.zip

    Java的IO流是Java平台中处理输入/输出操作的核心组件,它允许程序与各种数据源(如文件、网络连接、内存缓冲区等)进行交互。在这个案例中,我们讨论的主题是如何利用Java的IO流实现文件复制,特别是使用字节流进行...

    python中的IO流(csdn)————程序.pdf

    Python提供了简单易用的接口来处理IO流,主要通过内置的`open()`函数实现。 `open()`函数是Python中用于打开文件的关键工具。它接受两个主要参数:`file`和`mode`。`file`参数指定要打开的文件路径或名称,而`mode`...

    java io流-3.pdf

    - **5.5 URL查看器**:构建一个简单的网络资源查看器应用,演示如何使用网络流从远程服务器获取资源。 #### 六、过滤流 - **6.1 过滤流类**:过滤流是在现有流的基础上添加额外功能的新流类型。 - **6.2 过滤流...

    java IO流实例,包括文件的读写、上传和下载

    本实例主要探讨了如何使用Java IO流进行文件的读写、上传和下载,同时也涵盖了处理文本数据和音频文件等内容。 一、文件的读写 Java中的File类是文件操作的基础,它提供了创建、删除、重命名等基本功能。而IO流则...

Global site tag (gtag.js) - Google Analytics