实验1 文件的创建
一、实验目的
掌握File类的使用
二、实验内容
1.在d:\xxx\ten下利用File创建文件和文件夹,通过File类的方法,了解文件的相关信息。
import java.io.File;
import java.io.IOException;
public class CreateFile {
public static void main(String[] args) throws IOException {
File file1 = new File("d:\\SSS.txt");
File file2 = new File("d:","DDD.txt");
File file = new File("d:\\AAA");
file1.createNewFile();
file2.createNewFile();
file.mkdir();
}
}
实验2 文件的复制
一、实验目的
掌握字节流的读写操作
二、实验内容
1.将d:\abc.txt文件(不存在创建)复制到当前目录,文件名不变。
将d:\jieai.jpg文件复制到桌面,文件名改为tupian.jpg
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class CopyFile {
public static void main(String[] args) throws IOException {
FileInputStream fis=new FileInputStream("d:\\SSS.txt");
FileOutputStream fos=new FileOutputStream("d:\\DDD.txt");
FileInputStream f1=new FileInputStream("d:\\jieai.jpg");
FileOutputStream f2=new FileOutputStream("C:\\Users\\29752\\Desktop\\tupian.jpg");
byte[] bys=new byte[1024];
int len;
while((len=fis.read(bys))!=-1){
fos.write(bys, 0, len);
}
while((len=f1.read(bys))!=-1){
f2.write(bys, 0, len);
}
fis.close();
fos.close();
f1.close();
f2.close();
}
}
2、(1)编写如下界面
(2)利用所学知识实现文本文件的新建、打开和保存操作
(3)查找资料,学会在Java中利用剪贴板实现信息的复制和粘贴操作。
import java.awt.FileDialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class NoteFile extends JFrame {
JMenuBar jmb;
JMenu jm1,jm2,jm3,jm4;
JMenuItem jm11,jm12,jm13,jm14,jm15,jm31,jm32,jm33,jm41;
JTextArea jta;
public NoteFile() {
setTitle("记事本");
setBounds(300,300,500,400);
init();
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
jm11.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setTitle("记事本"+"----未命名");
jta.setText("");}});
jm12.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser jfc=new JFileChooser();
int sd = jfc.showOpenDialog(null);
File file=null;
if (sd==jfc.APPROVE_OPTION){
file=jfc.getSelectedFile();
}
if (file!=null){
setTitle("记事本----"+file.getName());
FileReader fr=null;
try{//创建文件字符输入流对象
fr=new FileReader(file);//按字符数组读取信息
char[] chs=new char[1024];
int len;
jta.setText("");//清空文本区内容
while((len=fr.read(chs))!=-1){//读取文件信息
//将读取的字符数组添加到文本区中
jta.append(new String(chs,0,len));
}
}catch(IOException e2){//如果有异常,弹出消息框
JOptionPane.showMessageDialog(null, "文件访问出现问题");
}finally{//资源的释放放到finally模块中
if (fr!=null){//如果fr不为空
try {
fr.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();}}}}}});
jm13.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
FileDialog fd=new FileDialog(NoteFile.this,"打开",FileDialog.LOAD);
fd.setVisible(true);
File file=new File(fd.getDirectory()+"\\"+fd.getFile());
FileReader fr=null;
try{
fr=new FileReader(file);
char[] chs=new char[1024];
int len;
jta.setText("");
while((len=fr.read(chs))!=-1){
jta.append(new String(chs,0,len));
} setTitle("记事本----"+file.getName());
}catch(IOException e2){
}finally{
if (fr!=null){
try {
fr.close();
} catch (IOException e1) {
e1.printStackTrace();}}}}});
jm14.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//创建保存对话框对象,设置mode,第三个参数表示是打开还是保存
FileDialog fd=new FileDialog(NoteFile.this,"保存",FileDialog.SAVE);
//显示对话框
fd.setVisible(true);//获取用户选择的文件的完整名称
File file=new File(fd.getDirectory()+"\\"+fd.getFile());
FileWriter fw=null;
try{
fw=new FileWriter(file);//写文本区的数据到文件
fw.write(jta.getText());
setTitle("记事本----"+file.getName());
}catch(IOException e1){
}finally{
if (fw!=null){
try {
fw.close();
} catch (IOException e1) {
e1.printStackTrace();}}}}});
jm31.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jta.cut();
}
});
jm32.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jta.copy();
}
});
jm33.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jta.paste();
}
});
jm41.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
JOptionPane.showMessageDialog(null, "关于记事本\r\n版本:v1.0\r\n作者:SSS\r\n欢迎使用我的记事本,有问题联系QQ:123456");
}
});}
public void init() {
jmb=new JMenuBar();
jm1=new JMenu("文件");
jm3=new JMenu("编辑");
jm4=new JMenu("帮助");
jm11=new JMenuItem("新建");
jm12=new JMenuItem("打开1");
jm13=new JMenuItem("打开2");
jm14=new JMenuItem("保存");
jm15=new JMenuItem("退出");
jm31=new JMenuItem("剪切");
jm32=new JMenuItem("复制");
jm33=new JMenuItem("粘贴");
jm41=new JMenuItem("关于");
jm1.add(jm11);
jm1.add(jm12);
jm1.add(jm13);
jm1.add(jm14);
jm1.add(jm15);
jm3.add(jm31);
jm3.add(jm32);
jm3.add(jm33);
jm4.add(jm41);
jmb.add(jm1);
jmb.add(jm3);
jmb.add(jm4);
setJMenuBar(jmb);
jta=new JTextArea();
JScrollPane jsp=new JScrollPane(jta);
add(jsp);
}
public static void main(String[] args) {
new NoteFile();
}
}