韩顺平java制作记事本_2011-05-21——Java从入门到精通(韩顺平)自己整理的笔记(包括记事本的开发)...

2011年5月21日星期六

第四十四讲 io编程

1.创建文件用:f2.createNewFile();

创建文件夹:f3.mkdir();

2.列出文件: File lists[]=f4.listFiles();

package IOStream;

import java.io.*;

public class Demo11_1

{

public static void main(String[] args)

{

File f=new File("d:/a.txt");

//得到文件的路劲

System.out.println("文件路径:"+f.getAbsolutePath());

//得到文件的大小

System.out.println("文件大小:"+f.length());// 返回文件的字节大小

System.out.println("可读:"+f.canRead());//可不可读

//创建文件和文件夹

File f2=new File("d:\\hsp.txt");

if(!f2.isFile())

{

//可以创建

try {

f2.createNewFile();

} catch (IOException e) {

e.printStackTrace();

}

}else

{

System.out.println("有文件不能创建");

}

//创建文件夹

File f3=new File("d:\\ffddd");

if(f3.isDirectory())

{

System.out.println("文件夹存在");

}

else

{

f3.mkdir();

}

//列出文件夹下面的所有文件

File f4=new

File("d:\\dd");

if(f4.isDirectory())

{

File

lists[]=f4.listFiles();

for(int i=0;i

{

System.out.println("文件名:"+lists[i]);

}

}

else

{

f4.mkdir();

}

}

}

3.文件字节流

读取文件:FileInputStream,因为File没有读写能力,所以用个FileInputStream

4.记得关闭文件

package IOStream;

import java.io.*;

public class Demo11_2

{

public static void main(String[] args)

{

File f=new File("d:\\test.txt");

FileInputStream fis=null;

try {

//因为File没有读写能力,所以用个FileInputStream

fis=new FileInputStream(f);

//定义一个字节数组,相当于是缓存

byte []bytes=new byte[1024];

//得到实际读取到的字节数

int n=0;

//循环读取

while((n=fis.read(bytes))!=-1)

{

//把字节转化成String

String s=new String(bytes,0,n);

System.out.println(s);

}

}

catch (Exception e)

{

e.printStackTrace();

}

finally

{

//关闭文件流要放在这里

try

{

fis.close();

}

catch (IOException e)

{

e.printStackTrace();

}

}

}

}

5.

package IOStream;

import java.io.*;

public class Demo11_3

{

public static void main(String[] args)

{

File f=new File("d:\\ss.txt");

//字节输出流

FileOutputStream fos=null;

try

{

fos=new FileOutputStream(f);

//如果数据量大的话,定义数组,把String转换成字节数组,这里就buy

String s="12312231235555\r\n";//必须是回车再换行,注意顺序

String s2="ddddddd";

fos.write(s.getBytes());

fos.write(s2.getBytes());

}

catch (Exception e)

{

e.printStackTrace();

}

finally

{

try {

fos.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

第四十五讲 iO编程

1.图片拷贝

package com.test4;

import java.io.File;

import java.io.FileInputStream;

import

java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

public class Demo12_4

{

public static void main(String[] args)

{

//先把图片读入到内存,再想办法将其写入某个文件

//因我是二进制文件,因此只能用字节流完成

FileInputStream fis=null;

//定义输出流

FileOutputStream fos=null;

try

{

File f1=new File("c:\\a.jpg");

fis=new FileInputStream(f1);

fos=new FileOutputStream("d:\\a.jpg");

byte buf[]=new byte[1024];

int n=0;//记录实际读取的字节数

//循环次数

while((n=fis.read(buf))!=-1)

{

//输出到指定文件

fos.write(buf);

}

}

catch (Exception e)

{

e.printStackTrace();

}

finally

{

try {

fis.close();

fos.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

2.

3.

package com.test4;

import java.io.*;

public class Demo12_5

{

public static void main(String[] args)

{

//文件取出字符流对象

FileReader fr=null;

//写入到文件

FileWriter fw=null;

try

{

//创建fr对象

fr=new FileReader("c:\\ttt.txt");

//创建输出对象

fw=new FileWriter("d:\\ccc.txt");

int n=0;//记录实际读取到的字符数

char c[]=new char[1024];

while((n=fr.read(c))!=-1)

//read返回已经读取的数目,到了文件的末尾就返回-1,read本身有两种状态,要么刚读完返回c.length要么返回-1,所以相当于只有两个过程

{

System.out.println("n="+n);

String s=new String(c,0,n);//从0开始读取n个

System.out.println(s);

//fw.write(c);//写了所有的整块数据,1024的整数倍

fw.write(c, 0, n);//按照实际长度写,不会有浪费的码

}

}

catch (Exception e)

{

e.printStackTrace();

}

finally

{

try {

fw.close();

fr.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

4.常用IO流——缓冲字符流,直接操作String

BufferedReader StreamReader

5.总结:

FileInputStream文件字节流:

File f=new

File("d:\\test.txt");

FileInputStream fis=null;

FileReader文件字符流: fr=new FileReader("c:\\ttt.txt");

fw=new FileWriter("d:\\ccc.txt");

BufferedReader缓冲字符流: fr = new FileReader("c:\\ttt.txt");

(读行)

br=new BufferedReader(fr);

第四十六讲 IO编程 记事本开发

package com.test7;

import java.io.*;

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

public class NotePad

extends JFrame implements ActionListener

{

//定义需要的组件

JTextArea

jta=null;

//定义菜单条

JMenuBar

jmb=null;

//第一JMenu

JMenu

jm1=null;

JMenuItem

jmi1=null;

JMenuItem

jmi2=null;

public static void main(String[] args)

{

NotePad notepad=new NotePad();

}

public NotePad()

{

//创建jta

jta=new JTextArea();

jmb=new JMenuBar();

jm1=new JMenu("文件");

jm1.setMnemonic('F');

jmi1=new JMenuItem("打开",new

ImageIcon("weixiao.gif"));

jmi2=new JMenuItem("保存",new

ImageIcon("ziya.gif"));

//注册监听

jmi1.addActionListener(this);

jmi1.setActionCommand("open");

//对保存菜单的操作

jmi2.addActionListener(this);

jmi2.setActionCommand("save");

jm1.add(jmi1);

jm1.add(jmi2);

jmb.add(jm1);

this.setJMenuBar(jmb);

//放入到JFrame

this.add(jta);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

this.setSize(400, 300);

this.setVisible(true);

}

public void actionPerformed(ActionEvent e)

{

//判断哪个菜单被选中

if(e.getActionCommand().equals("open"))

{

//System.out.println("open");

//使用JFileChooser

JFileChooser jfc1=new JFileChooser();

//设置名字

jfc1.setDialogTitle("请选择文件:");

jfc1.showOpenDialog(null);

//显示

jfc1.setVisible(true);

//得到用户选择的文件路径

String filename=jfc1.getSelectedFile().getAbsolutePath();

//System.out.println(filename);//显示绝对路径

FileReader fr=null;

BufferedReader br=null;

try

{

fr=new FileReader(filename);

br=new BufferedReader(fr);

//从文件中读取信息

String s="";

String allCon="";

while((s=br.readLine())!=null)

{

//输出到JTextFile

allCon+=(s+"\r\n");

}

//放置到JTextFile中

jta.setText(allCon);

}

catch (Exception e1)

{

e1.printStackTrace();

}

finally

{

try {

br.close();

fr.close();

} catch (IOException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

}

}

else if (e.getActionCommand().equals("save"))

{

JFileChooser jfc2=new JFileChooser();

jfc2.setDialogTitle("另存为…");

jfc2.showSaveDialog(null);

//按默认的方式显示

jfc2.setVisible(true);

//得到用户希望把文件保存到何处

String file=jfc2.getSelectedFile().getAbsolutePath();

//准备写入到指定的文件

FileWriter fw=null;

BufferedWriter bw=null;

try

{

fw=new FileWriter(file);

bw=new BufferedWriter(fw);

bw.write(this.jta.getText());

}

catch (IOException e1)

{

e1.printStackTrace();

}

finally

{

try {

bw.close();

fw.close();

} catch (IOException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值