错误告诉你了啊,NotNull就是不能为空,说明没有那文件夹,或文件夹下是空的,所以你要据此去看问题,当你基础没有学好的时候,或包括以后,都是按照这种规范来。另外记清楚了,java字符串里\是转义,文件路径字符串,则是/或者\\才对。你一个\转义了数字,肯定不是那个文件夹了。
成都创新互联是一家专注于网站制作、成都网站制作与策划设计,屏山网站建设哪家好?成都创新互联做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:屏山等地区。屏山做网站价格咨询:18980820575
while ((str=br.readLine())!=null) {
jf2.append(str+"\r\n");
return;
}
为什么要加 return,把 return 去掉;稍微改了一下代码:
import java.io.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;
public class jisuanqi {
private JTextField jf1 = new JTextField(16);
private JTextArea jf2 = new JTextArea();
private JPanel jp = new JPanel();
public jisuanqi(){
JFrame frame = new JFrame();
frame.add(jf1);
JButton j1 = new JButton("按钮");
frame.add(j1);
j1.addActionListener(new MyLisener());
JScrollPane jsp =new JScrollPane(jf2);
jf2.setPreferredSize(new Dimension(200,500));
frame.add(jsp);
frame.setLayout(new FlowLayout());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
private class MyLisener implements ActionListener{
@Override
public void actionPerformed(ActionEvent a) {
JButton b1 = (JButton) a.getSource();
try {
String sv = jf1.getText();
FileInputStream fis=new FileInputStream(sv);
InputStreamReader isr=new InputStreamReader(fis,"GBK");
BufferedReader br =new BufferedReader(isr);
String str =null;
while ((str=br.readLine())!=null) {
jf2.append(str+"\r\n");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
new jisuanqi();
}
}
class value{
private int i;//这里改成private会更好,有利于封装
puvlic value(int i){this.i=i}
}
这个构造器的意思就是将 构造器参数的i来赋值给value类的i.
构造器中的i的作用范围在构造器中
类中的i作用于整个类。加this就是区分类的i和构造器的I
我首先说下思路吧,你想更改文件中的字符串,首先你要使用java中的io把文件里面的内容全部读到一个字符串当中,然后对这个字符串进行查找替换的操作,最后在把你更改之后的这个字符串写进文件当中,当然是覆盖掉这个文件。
这里我就用到FileOutputStream FileInputStream BufferedReader PrintWriter
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
try {
File file = new File("c:\\abc.txt");
// 建立一个file对象,参数就是你想访问文件的路径,这里我就不验证文件是否存在了
// 查下api即可
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(file)));
List list =new ArrayList();
//定义一个集合存放每一行的字符串
while(true){
String str=br.readLine();
//读取文件当中的一行
if(str==null) break;
//如果读取的是空,也就是文件读取结束 跳出循环
int index=str.indexOf("zhidao");
//看此行的是否包含zhidao
if(index!=-1){
str.replace("zhidao", "answer");
//如果包含就把zhidao 换成answer
}
list.add(str);
//把修改之后的str放到集合当中
}
br.close();
PrintWriter pw=new PrintWriter(file);
//建立一个输出流,把东西写入文件
for(int i=0;ilist.size();i++){
String str =(String)list.get(i);
//从集合当中取出字符串
pw.println(str);
//把该字符串写入文件当中
}
pw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}