分区结构分析: linux系统可查看某一磁盘结构,效果类似window的winhex。
2016-10-16 20:26
337 查看
package Task2; import java.awt.Button; import java.awt.Color; import java.awt.Dimension; import java.awt.Rectangle; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; public class Task2 extends JFrame { static JTextArea ta = new JTextArea(); static JTextField tf1 = new JTextField(); static int count = 0; public Task2(String title) throws IOException{ super(title); JScrollPane jp = new JScrollPane(ta); jp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); jp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); jp.setViewportView(ta); jp.setPreferredSize(new Dimension(700,600)); add(jp); setSize(450, 600); setLocation(150, 150); setLayout(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Button button1 = new Button("选择文件"); button1.setBounds(new Rectangle(20, 20, 70, 25)); button1.addActionListener(new ChooseFile()); tf1.setBounds(new Rectangle(100, 20, 200, 25)); ta.setBackground(Color.white); ta.setText(" "); ta.setEditable(true); ta.setLineWrap(true); ta.setBounds(new Rectangle(20, 50, 400, 500)); add(ta); add(tf1); add(button1); setVisible(true); for(int i = 0 ; i <= 9 ; i++){ ta.append('0' + String.valueOf(i)+" "); } for(int i = 10 ; i < 16 ; i++ ){ ta.append(i+" "); } Task2.ta.append("\n"); Task2.ta.append("\n"); } public static void main(String[] args) throws IOException { Task2 t = new Task2("文件分析"); } } class ChooseFile implements ActionListener{ public void actionPerformed(ActionEvent e) { JFileChooser fileChooser = new JFileChooser(); fileChooser.setMultiSelectionEnabled(true); fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); fileChooser.showOpenDialog(null); File[] files = fileChooser.getSelectedFiles(); for(int i = 0 ; i < files.length ; i++){ try { startThread(files[i]); } catch (InterruptedException e1) { e1.printStackTrace(); } } if(files.length == 1){ Task2.tf1.setText(files[0].getAbsolutePath()); }else Task2.tf1.setText(files[0].getParent()); } public void startThread(File file) throws InterruptedException{ java.lang.Runnable runner = new Runnable() { public void run() { String file1 = file.toString(); try { FileInputStream stream = new FileInputStream(file1); int c = 0 ; while((c = stream.read()) != -1){ int v = c&0xFF; String string1 = Integer.toHexString(v); Task2.count++; if(string1.length() < 2) string1 = '0' + string1; Task2.ta.append(" "+string1+" "); if(Task2.count % 16 ==0 ){ Task2.ta.append("\n"); } } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }; new Thread(runner).start(); new Thread(runner).sleep(100); } public void ReadAllFiles(String path) { File f = new File(path); File[] files = f.listFiles(); } } 难点在于二进制转换到16进制,代码中已经说明。
相关文章推荐
- Linux技巧-如何查看系统信息-硬盘、分区信息以及磁盘用量
- Linux系统中df与du命令查看分区大小不一致问题分析
- Linux学习笔记_系统分区信息,磁盘空间及inode占用查看(df,fdisk)
- Google Linux Cluster的系统结构分析(余一娇)
- [转]Google Linux Cluster的系统结构分析(余一娇)
- Linux查看系统磁盘使用情况
- 查看linux系统下磁盘占用以及mount的远程原始路径
- Android进阶:实现android系统自带查看照片动画效果 类似Gallery手势滑动
- Google Linux Cluster的系统结构分析(转载自: 华中师范大学语言学系:余一娇)
- Linux 磁盘分区表、文件系统的查看
- Linux下磁盘的分区,文件系统的格式化与raid设备
- 查看linux分区文件系统类型
- 简述linux系统的目录结构作用和分区方案
- linux磁盘结构及分区
- 转贴:Google Linux Cluster的系统结构分析
- Linux 磁盘分区表、文件系统查看和操作
- 谈linux磁盘结构及分区
- Linux 查看磁盘分区、文件系统、磁盘的使用情况相关的命令和工具介绍
- Linux 磁盘分区表、文件系统的查看、统计的工具
- Linux查看磁盘已挂载分区使用情况df详解