zoukankan      html  css  js  c++  java
  • 作业一

     1 package com.cumin;
     2 
     3 import java.io.File;
     4 import java.io.IOException;
     5 import java.io.ObjectInputStream.GetField;
     6 
     7 public class FileUtils {
     8     private static String[] filenames; // 存储文件名
     9 
    10     // 编写两个静态方法方便调用
    11 
    12     /*
    13      * 1.方法fileDir参数传递文件路径 
    14      * 2.判断file,如果不存在或不是目录并抛出异常
    15      * 3.使用list()方法,并for-each遍历filenames 
    16         * 4.最后返回mes
    17      */
    18     public static String fileDir(File file) throws IOException {
    19         if (!file.exists()) {
    20             System.out.println("目录不存在");
    21             throw new IOException();
    22         }
    23         if (!file.isDirectory()) {
    24             System.out.println(file + "不是目录");
    25             throw new IOException();
    26         }
    27         filenames = file.list();
    28         String mes = "";
    29         for (String str : filenames) {
    30             mes += str + '
    ';
    31         }
    32         return mes;
    33     }
    34 
    35     /*
    36      * 1.方法eachFileDir参数传递文件路径
    37      * 2.利用filenames[i].substring(filenames[i].lastIndexOf("."))获取文件后缀名
    38      * 3.判断后返回mes
    39      */
    40     public static String eachFileDir(String str) throws IOException {
    41         String mes = "";
    42         for (int i = 0; i < filenames.length; i++) {
    43             
    44             // 获取文件后缀名
    45             String postfix = filenames[i].substring(filenames[i].lastIndexOf("."));
    46             
    47             if (postfix.equalsIgnoreCase(str)) {
    48                 mes += filenames[i] + '
    ';
    49             }
    50         }
    51         return mes;
    52     }
    53 }
     1 package com.cumin;
     2 
     3 import javax.swing.*;
     4 import java.awt.*;
     5 import java.awt.event.ActionEvent;
     6 import java.awt.event.ActionListener;
     7 import java.io.File;
     8 import java.io.IOException;
     9 
    10 public class ListFilesUI extends JFrame {
    11     private JFrame main_frame;
    12     private JTextArea list_area;
    13     private JLabel text_msg;
    14     private JPanel main_panel;
    15     private JPanel north_panel;
    16     private JComboBox<String> box;
    17 
    18     public ListFilesUI() {
    19         makeFrame();
    20     }
    21 
    22     public void makeFrame() {
    23         // 声明
    24         main_frame = new JFrame("test");
    25         main_panel = new JPanel(new BorderLayout());
    26         north_panel = new JPanel(new GridLayout(2, 1));
    27         text_msg = new JLabel("files list");
    28         list_area = new JTextArea();
    29         JScrollPane jsb = new JScrollPane(list_area);
    30 
    31         list_area.setEnabled(false);/* list_area设置不可编辑 */
    32         try {
    33             // 调用fileDir获取文件里面的所有文件内容
    34             list_area.setText(FileUtils.fileDir(new File("audio")));
    35         } catch (IOException e) {
    36             e.printStackTrace();
    37         }
    38 
    39         box = new JComboBox<>();
    40         String[] item = { "all", ".wav", ".mp3", ".au", ".aif" };
    41         for (int i = 0; i < item.length; i++) {
    42             box.addItem(item[i]);
    43         }
    44         // 组合框加监听器
    45         box.addActionListener(new ActionListener() {
    46 
    47             @Override
    48             public void actionPerformed(ActionEvent e) {
    49                 try {
    50                     // 获取组合框的itmename
    51                     String item = box.getItemAt(box.getSelectedIndex());
    52                     if (item.equalsIgnoreCase("all")) {
    53                         // 调用静态方法eachFileDir筛选匹配的字符串
    54                         list_area.setText(FileUtils.fileDir(new File("audio")));
    55                     } else {
    56                         list_area.setText(FileUtils.eachFileDir(box.getItemAt(box.getSelectedIndex())));
    57                     }
    58                 } catch (IOException e1) {
    59                     e1.printStackTrace();
    60                 }
    61             }
    62         });
    63 
    64         // 其他
    65         north_panel.add(text_msg);
    66         north_panel.add(box);
    67         main_panel.add(north_panel, BorderLayout.NORTH);
    68         main_panel.add(jsb, BorderLayout.CENTER);
    69         main_frame.add(main_panel);
    70 
    71         main_frame.setSize(250, 350);
    72         main_frame.setVisible(true);
    73         main_frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    74 
    75     }
    76 
    77     public static void main(String[] args) {
    78         // 使用beautieye渲染UI
    79         try {
    80             org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF();
    81         } catch (Exception e) {
    82         }
    83         new ListFilesUI();
    84 
    85     }
    86 }

    作业2:

     1 import java.io.File;
     2 import java.io.IOException;
     3 import java.io.RandomAccessFile;
     4 
     5 public class TestRandomAccessFile {
     6     private File file;
     7 
     8     public static void main(String[] args) {
     9         TestRandomAccessFile traf = new TestRandomAccessFile();
    10         traf.init();
    11         traf.record("Adom", 120);
    12         traf.listAllRecords();
    13     }
    14 
    15     public void record(String record_breaker, int times) {
    16         try {
    17             RandomAccessFile raf = new RandomAccessFile(file, "rw");
    18             boolean flag = false;
    19             while (raf.getFilePointer() < raf.length()) {
    20                 String name = raf.readUTF();
    21                 //记录当前的指针位置!!!(重点)
    22                 long prior = raf.getFilePointer();
    23                 if (record_breaker.equalsIgnoreCase(name)) {
    24                     //判断名字相同后设置flag,否则raf会继续往下读。
    25                     flag = true;
    26                     //判断传递进来的参数与之前分数的大小,决定是否重写
    27                     if (raf.readInt() < times) {
    28                         //利用seek()方法跳转到prior的位置! (重点)
    29                         raf.seek(prior);
    30                         raf.writeInt(times);
    31                         break;
    32                     }
    33                 } else {
    34                     raf.skipBytes(4);
    35                 }
    36             }
    37              if (!flag) {
    38              raf.writeUTF(record_breaker);
    39              raf.writeInt(times);
    40              }
    41             raf.close();
    42         } catch (Exception e) {
    43             e.printStackTrace();
    44         }
    45     }
    46 
    47     public void init() {
    48         if (file == null) {
    49             file = new File("record.txt");
    50             try {
    51                 file.createNewFile();
    52             } catch (IOException e) {
    53                 e.printStackTrace();
    54             }
    55         }
    56     }
    57 
    58     public void listAllRecords() {
    59         try {
    60             RandomAccessFile raf = new RandomAccessFile(file, "r");
    61             while (raf.getFilePointer() < raf.length()) {
    62                 String name = raf.readUTF();
    63                 int times = raf.readInt();
    64                 System.out.println("name:" + name + "	record:" + times);
    65             }
    66             raf.close();
    67         } catch (Exception e) {
    68             e.printStackTrace();
    69         }
    70     }
    71 }

  • 相关阅读:
    POJ3041Asteroids(最小点覆盖+有点小抽象)
    POJ 2240Arbitrage(Floyd)
    POJ1860Currency Exchange(Bellman + 正权回路)
    POJ3259Wormholes(判断是否存在负回路)
    TCL V7300A-3D升级教程
    “一生所爱“一首一听就很想落泪的歌曲
    一生所爱 怀念那段旧时光~
    文艺小青年
    又是一年中秋节
    luogu1080 国王游戏(贪心+高精度)
  • 原文地址:https://www.cnblogs.com/abaibjw12345/p/5401620.html
Copyright © 2011-2022 走看看