Java窗体组件操作文件读与写
开发工具与关键技术:java
作者:陈希雄
撰写时间:2019/5/1
用窗体组件来操作文件的读与写,先看下面的代码吧!
先创建一个类来继承Jframe窗体类
public class Files extends JFrame {
public Files() {
//文字大小
Font font=new Font(null, 20, 16);
//标题
setTitle("文件操作小程序");
setLayout(null);
setBounds(200, 200, 800, 450);//窗体位置
//按钮
JButton b1=new JButton("读取文件");
JButton b2=new JButton("写入文件");
//Label标题
JLabel jl=new JLabel("内容:");
JLabel jl1=new JLabel("路径:");
//文本
JTextArea jt=new JTextArea();
JTextArea jt1=new JTextArea();
//面板
JScrollPane js=new JScrollPane(jt);
JScrollPane js1=new JScrollPane(jt1);
Container c=getContentPane();//容器
//字体大小
b1.setFont(font);
b2.setFont(font);
jl.setFont(font);
jl1.setFont(font);
jt.setFont(font);
jt1.setFont(font);
//设置工具的宽高和位置
b1.setBounds(200, 350, 100, 30);
b2.setBounds(450, 350, 100, 30);
js.setBounds(70, 40, 600, 300);
jl.setBounds(10, 10, 100, 100);
js1.setBounds(70, 10, 600, 25);
jl1.setBounds(10, 7, 50, 30);
//添加到容器里面
c.add(b1);
c.add(b2);
c.add(js);
c.add(jl);
c.add(js1);
c.add(jl1);
//读取文件
//b1这个按钮添加一个监听事件
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent bi) {
String resultString1= Luj(jt1);//文件路径
if(resultString1.equals("")) {
JOptionPane.showMessageDialog(null, "路径不能为空");//弹出对话框
}else {
//创建一输入字符流
Reader reader = null;
try {
reader = new FileReader(resultString1);
char[] cs=new char[200];
int count=0;
String str1 = "";
try {
while((count=reader.read(cs, 0, cs.length))!=-1) {
str1+=new String(cs,0,count);
jt.setText(str1);
}
JOptionPane.showMessageDialog(null,"读取成功!!!");
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
JOptionPane.showMessageDialog(null, "路径格式不正确, 提示:例如D:\\课件\\123.txt 或者 D:/课件/123.txt ");//弹出对话框
}finally {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
});
//写入文件
b2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent b02) {
String resultString1= Luj(jt1);//文件路径
if(resultString1.equals("")) {
JOptionPane.showMessageDialog(null, "路径不能为空");//弹出对话框
}else {
Writer in = null;
try {
in = new FileWriter(resultString1);
in.write(jt.getText());
in.flush();
in.close();
JOptionPane.showMessageDialog(null,"写入成功!!!");
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "路径格式不正确, 提示:例如:D:\\课件\\123.txt 或者 D:/课件/123.txt ");//弹出对话框
}finally {
try {
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
});
setVisible(true);//开启窗体
//设置关闭方式
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static String Luj(JTextArea JTextArea) {//这是一个用正则来匹配的方法
String str= JTextArea.getText();//获取文本内容 "H:\lianxi\test.txt"
String resultString = str.replaceAll("(?m)\"| ", "");
String resultString1 = resultString.replaceAll("(?m)\\\\", "/");
return resultString1;
}
public static void main(String[] args) {
new Files();//实例
}
}
效果
写出去:
读进来:
开发工具与关键技术:java
作者:陈希雄
撰写时间:2019/5/1
用窗体组件来操作文件的读与写,先看下面的代码吧!
先创建一个类来继承Jframe窗体类
public class Files extends JFrame {
public Files() {
//文字大小
Font font=new Font(null, 20, 16);
//标题
setTitle("文件操作小程序");
setLayout(null);
setBounds(200, 200, 800, 450);//窗体位置
//按钮
JButton b1=new JButton("读取文件");
JButton b2=new JButton("写入文件");
//Label标题
JLabel jl=new JLabel("内容:");
JLabel jl1=new JLabel("路径:");
//文本
JTextArea jt=new JTextArea();
JTextArea jt1=new JTextArea();
//面板
JScrollPane js=new JScrollPane(jt);
JScrollPane js1=new JScrollPane(jt1);
Container c=getContentPane();//容器
//字体大小
b1.setFont(font);
b2.setFont(font);
jl.setFont(font);
jl1.setFont(font);
jt.setFont(font);
jt1.setFont(font);
//设置工具的宽高和位置
b1.setBounds(200, 350, 100, 30);
b2.setBounds(450, 350, 100, 30);
js.setBounds(70, 40, 600, 300);
jl.setBounds(10, 10, 100, 100);
js1.setBounds(70, 10, 600, 25);
jl1.setBounds(10, 7, 50, 30);
//添加到容器里面
c.add(b1);
c.add(b2);
c.add(js);
c.add(jl);
c.add(js1);
c.add(jl1);
//读取文件
//b1这个按钮添加一个监听事件
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent bi) {
String resultString1= Luj(jt1);//文件路径
if(resultString1.equals("")) {
JOptionPane.showMessageDialog(null, "路径不能为空");//弹出对话框
}else {
//创建一输入字符流
Reader reader = null;
try {
reader = new FileReader(resultString1);
char[] cs=new char[200];
int count=0;
String str1 = "";
try {
while((count=reader.read(cs, 0, cs.length))!=-1) {
str1+=new String(cs,0,count);
jt.setText(str1);
}
JOptionPane.showMessageDialog(null,"读取成功!!!");
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
JOptionPane.showMessageDialog(null, "路径格式不正确, 提示:例如D:\\课件\\123.txt 或者 D:/课件/123.txt ");//弹出对话框
}finally {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
});
//写入文件
b2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent b02) {
String resultString1= Luj(jt1);//文件路径
if(resultString1.equals("")) {
JOptionPane.showMessageDialog(null, "路径不能为空");//弹出对话框
}else {
Writer in = null;
try {
in = new FileWriter(resultString1);
in.write(jt.getText());
in.flush();
in.close();
JOptionPane.showMessageDialog(null,"写入成功!!!");
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "路径格式不正确, 提示:例如:D:\\课件\\123.txt 或者 D:/课件/123.txt ");//弹出对话框
}finally {
try {
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
});
setVisible(true);//开启窗体
//设置关闭方式
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static String Luj(JTextArea JTextArea) {//这是一个用正则来匹配的方法
String str= JTextArea.getText();//获取文本内容 "H:\lianxi\test.txt"
String resultString = str.replaceAll("(?m)\"| ", "");
String resultString1 = resultString.replaceAll("(?m)\\\\", "/");
return resultString1;
}
public static void main(String[] args) {
new Files();//实例
}
}
效果
写出去:
读进来: