⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 notepad_treeopenfile.java

📁 java 编写的代码
💻 JAVA
字号:
/**
 * 树形结构的打开文件事件的类
 * 是否要考虑单态模式
 */
package com.edu.sccp.snail.notepad.view;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

import com.edu.sccp.snail.notepad.interfaces.Notepad_File;

/**
 * @author 小豆包
 * @velue  文本的接口属性   
 * @time 2008-1-8
 */
public class Notepad_TreeOpenFile implements  Notepad_File{
	Notepad_Main parent_frame = null;   //可访问到的类
	Notepad_newFile nf = null;   // 新建文件的类
	File file = null;                  //要打开的文件 
	/**
	 * 构造函数传值
	 * @param notepad_main
	 * @param nnf
	 * @param file
	 */
	public Notepad_TreeOpenFile(Notepad_Main notepad_main,File file){
		this.parent_frame = notepad_main;
		this.file = file;
		nf = new Notepad_newFile("");
		if(isOpen(file)){
			Notepad_File_TreeOpenFile(parent_frame,nf,file);
		}		
	}	
	/**
	 * 判定是否进行读文件操作
	 * @param file
	 * @return
	 */
	public boolean isOpen(File file){
		/*
		 * 如果文件存在和文件可读
		 * 则进行读文件操作
		 */
		if(file != null && file.canRead()){
			return true;
		}		
		return false;
	}
	/**
	 * 判断一个文件的后缀名
	 * @return 一个文件后缀名
	 * @author 小豆包
	 * @time 08/1/8
	 */
	public String getExt(File FileSrc){
		String Src = FileSrc.getAbsolutePath();
		String srcExt = Src.substring(Src.length() - 4,Src.length()).toLowerCase();  //转化成小写为什么?
	    return srcExt;
	    //返回文件后缀名
	}
	
	

     /**
      * 这就是属性结构的打开事件代码
      */
	public void Notepad_File_TreeOpenFile(Notepad_Main parent_frame, Notepad_newFile nf, File file) {
		/*
		 * 得到树形结构得到的文件后缀名
		 */
		String srcExt = getExt(file);
		BufferedReader br = null;    //字符读取流
		FileInputStream fis = null;   //字节读出来 然后转化成16进制 
		try {
			/*
			 * 文本文件打开方式
			 */
			if(srcExt.equals(".txt") || srcExt.equals("java") || srcExt.equals(".doc") || srcExt.equals(".log") ){
				br = new BufferedReader(new FileReader(file));
				
				String s = "";
				String str = "";
				   while((s = br.readLine())!=null)
				   {
					   str += s+"\n";					
				   }
				   nf.jta.append(str);  //构造一个新的文档
				   nf.setTitle(file.getName() +" ---"+file.getAbsolutePath());
				   parent_frame.jp1.add(nf);  //加到主窗体中去				
			}else{
				/*
				 * 二进制文件读取方式  以字节读出然后转化成16进制输出
				 */
				fis = new FileInputStream(file);
				int buf = 0;
				String str = "";
				while((buf = fis.read()) != -1){
					str  += Integer.toHexString(buf);
				}
				 nf.jta.append(str);  //构造一个新的文档
				 nf.setTitle(file.getName() +" ---"+file.getAbsolutePath());
				 parent_frame.jp1.add(nf);  //加到主窗体中去					
			}		
		} catch (FileNotFoundException e) {			
			e.printStackTrace();
		} catch (IOException e) {			
			e.printStackTrace();
		}finally{
			try{
				if(br != null){
					br.close();
				}if(fis != null){
					fis.close();
				}				
			}catch(IOException e){
				e.printStackTrace();
			}
		}
		
	}
	
	public void Notepad_FileSave(Notepad_Main notepad_main, File file) {
		
		
	}

	public void Notepad_FileOpen(Notepad_newFile nnf, File file) {
		
		
	}

	public void Notepad_File_OrtherSave(Notepad_Main notepad_main, File file) {
		
		
	}
	public void Notepad_File_TreeNewFile(Notepad_Main notepad_main, Notepad_newFile nnf, File file) throws IOException {
		// TODO Auto-generated method stub
		
	}
	

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -