java文件读写类[备忘]

<script type="text/javascript"> function StorePage() { d=document; t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():''); void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes')); keyit.focus(); } </script>  java文件读写类[备忘]

package FileAccess;

import java.io.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;

/**
 * Title:
 * Description: 这是对文本文件的读写操作的Bean
 * Copyright:    Copyright (c) 2001 2001/11/24
 * Company:  海南在线技术部
 * @author  程式猎人
 * @version 1.0
 */

public class FileAccess
{
    private String fileName,errorMessage;
    private int columns,rowCount;

    /* TextFileReader 的结构函数 */
    public FileAccess()
    {
      reset();
    }

    public void reset()
    {
      fileName=new String("");
      errorMessage=new String("");
      columns=0;
      rowCount=0;
    }

    public void setErrorMessage(String errorMessage)
    {
      this.errorMessage=errorMessage;
    }

    public String getErrorMessage()
    {
       return errorMessage;
    }

    public String getFileName()
    {
       return fileName;
    }

    public int getRows()
    {
      return rowCount;
    }

    public int getColumns()
    {
      return columns;
    }

    /*
    将文件内容返回到一个字符串里去
    如果有错误返回 null
    */
    public String getContent()
    {
      String content="";
      File file=new File(fileName);

      if(!file.exists())
      {
        setErrorMessage("Error: The file '"+fileName+"' does not exists.");
        return content;
      }
      else if(file!=null)
      {
        try
        {
          BufferedReader reader=new BufferedReader(new FileReader(file));
          String inLine=reader.readLine();

          while(inLine !=null)
          {
            if(inLine.length()+1>columns)
              columns=inLine.length()+1;

            content+=(inLine+System.getProperty("line.separator"));
            inLine=reader.readLine();
            rowCount++;
          }

          return content;

        }
        catch(IOException e)
        {
          setErrorMessage("Error reading the file: "+e.getMessage());
          return content;
        }
      }
      else
      {
        setErrorMessage("UnKnown Error!");
        return content;
      }

   }

    /* TextFileWriter 部分开始 */

    public void setFileName(String fileName)
    {
       this.fileName=fileName;
    }

    /*

    对文件写入新的内容writemod的方式有2种
    a:如果文件存在,新的内容追加到文件。否则创建一个新文件
    o: 如果文件存在,覆盖旧文件的内容。否则创建一个新文件
    writer: 王海波 2001/11/30

    */

    public boolean Write(String strInputContent,char writemod)
    {
      try
      {
         File fso=new File(fileName);

         String strContent=new String("");

         BufferedWriter writer=new BufferedWriter(new FileWriter(fso));

         switch (writemod)
         {
           case 'a':    //最加新的内容到文件

               FileAccess objFRead=new FileAccess();
               String oldContent=new String("");

               objFRead.setFileName(fileName);
               oldContent=objFRead.getContent();

               strContent=oldContent+strInputContent;

               break;

           case 'o':    //新内容覆盖旧文件的内容

               strContent=strInputContent;
               break;

           default:

               strContent=strInputContent;
               break;
         }

         writer.write(strContent);

         writer.close();

         return true;

      }
      catch(IOException e)
      {
         setErrorMessage("Error writting the file: "+e.getMessage());
         return false;
      }

    }

}

实现Client端功能的ClientApp.java原文件:

import java.net.*;
import java.io.*;
import java.lang.*;

public class ClientApp
{
  public static void main(String args[])
  {
    try
    {
       //创建通讯并且和主机Rock连接
       Socket cSocket=new Socket("192.168.100.188",8018);
       //打开这个Socket的输入/输出流
       OutputStream os=cSocket.getOutputStream();
       DataInputStream is=new DataInputStream(cSocket.getInputStream());

       int c;
       boolean flag=true;

       String responseline;

       while(flag)
       {
           //从标准输入输出接受字符并且写如系统
           while((c=System.in.read())!=-1)
           {
              os.write((byte)c);
              if(c=='/n')
              {
                 os.flush();
                 //将程序阻塞,直到回答信息被收到后将他们在标准输出上显示出来
                 responseline=is.readLine();
                 System.out.println("Message is:"+responseline);
              }
           }
       }
       os.close();
       is.close();
       cSocket.close();

    }
    catch(Exception e)
    {
      System.out.println("Exception :"+ e.getMessage());
    }
  }
}

实现Server端功能的ServerApp.java原文件:

import java.net.*;
import java.io.*;

public class ServerApp
{
  public static void main(String args[])
  {
     try
     {
        boolean flag=true;
        Socket clientSocket=null;
        String inputLine;
        int c;

        ServerSocket sSocket=new ServerSocket(8018);
        System.out.println("Server listen on:"+sSocket.getLocalPort());

        while(flag)
        {
          clientSocket=sSocket.accept();
          DataInputStream is= new DataInputStream(new BufferedInputStream(clientSocket.getInputStream()));
          OutputStream os=clientSocket.getOutputStream();

          while((inputLine=is.readLine())!=null)
          {
             //当客户端输入stop的时候服务器程序运行终止!
             if(inputLine.equals("stop"))
             {
                flag=false;
                break;
             }
             else
             {
                System.out.println(inputLine);

                while((c=System.in.read())!=-1)
                {
                  os.write((byte)c);
                  if(c=='/n')
                  {
                    os.flush();   //将信息发送到客户端
                    break;
                  }
                }
             }


          }
          is.close();
          os.close();
          clientSocket.close();

        }
        sSocket.close();
     }
     catch(Exception e)
     {
       System.out.println("Exception :"+ e.getMessage());
     }
  }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的备忘录的Java Swing实现: 1. 界面设计 备忘录界面主要包含一个文本框组件用于输入备忘录内容,一个列表组件用于显示已经保存的备忘录。 2. 数据存储 备忘录的数据可以选择使用文件进行存储,这里使用文本文件来存储备忘录内容。可以使用JavaFile和BufferedWriter来进行文件读写操作。 3. 备忘录编辑 备忘录编辑界面需要提供一个文本框组件,让用户输入备忘录内容。 4. 备忘录保存 备忘录保存界面需要提供一个按钮组件,当用户点击保存按钮时,将备忘录内容写入到文本文件中。 5. 备忘录浏览 备忘录浏览界面需要提供一个列表组件,用于显示已经保存的备忘录内容。可以使用Java的JList组件来实现。 下面是一个简单的备忘录的Java Swing实现代码: ```java import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; public class MemoPad extends JFrame implements ActionListener { private JTextArea textArea; private JList<String> list; private DefaultListModel<String> model; public MemoPad() { super("备忘录"); // 创建备忘录编辑界面 JPanel editPanel = new JPanel(new BorderLayout()); textArea = new JTextArea(); editPanel.add(textArea, BorderLayout.CENTER); // 创建备忘录保存界面 JPanel savePanel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); JButton saveButton = new JButton("保存"); saveButton.addActionListener(this); savePanel.add(saveButton); // 创建备忘录浏览界面 model = new DefaultListModel<String>(); list = new JList<String>(model); JScrollPane scrollPane = new JScrollPane(list); // 组合界面 JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, editPanel, scrollPane); splitPane.setResizeWeight(0.5); getContentPane().add(splitPane, BorderLayout.CENTER); getContentPane().add(savePanel, BorderLayout.SOUTH); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(400, 300); setLocationRelativeTo(null); setVisible(true); } @Override public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("保存")) { // 将备忘录内容保存到文本文件中 try { BufferedWriter writer = new BufferedWriter(new FileWriter("memo.txt", true)); writer.write(textArea.getText()); writer.newLine(); writer.close(); } catch (IOException ex) { ex.printStackTrace(); } // 将备忘录内容添加到列表中 model.addElement(textArea.getText()); textArea.setText(""); } } public static void main(String[] args) { new MemoPad(); } } ``` 以上是一个简单的备忘录的Java Swing实现,希望对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值