Java如何读取和删除文件的内容。

时间:2012-07-30 17:20:14

标签: java

我有一个列表,其中包含大约700个我需要编辑的项目,然后再将它们添加到我的网页中。 我尝试手动编辑每个项目,但它变得过于广泛,我认为我可能会使用Java来阅读和编辑文件,因为需要编辑的单词在每个项目中具有相同的开头和结尾。

我以为我会先从Q中的单词循环开始,保存它,当我有逻辑工作时,我会找到如何阅读文本文件并再次做同样的事情。 (如果有其他方式,我愿意接受建议)    这是我到目前为止编写的代码,很久以前我用Java编写代码,所以我现在基本没有技能。

import javax.swing.JOptionPane;

public class CustomizedList
{

public static void main (String[] args)
{
    String Ord = JOptionPane.showInputDialog("Enter a word");
    String resultatOrd ="";

    for(int i = 0; i < Ord.length(); i++)
    {
        if(Ord.charAt(i) == 'y' && Ord.charAt(i) == 'e' && Ord.charAt(i) ==    

's')
        {
            resultatOrd += Ord.charAt(i);
            System.out.println(resultatOrd);
        }   

        else
        System.out.println("Wrong word.");
    }
}
}

我不确定我做错了什么,但我输入的这个词在逻辑上不起作用。    我想从这个文本文件中删除两个单词:YES和NO,都是大写和小写。

3 个答案:

答案 0 :(得分:5)

您的代码不对:

if(Ord.charAt(i) == 'y' && Ord.charAt(i) == 'e' && Ord.charAt(i) ==  's')

始终 false

解决方案:

Ord.toLower().contains("yes")

或者(更糟糕但在你的情况下仍然正确):

if(Ord.charAt(i) == 'y' && Ord.charAt(i+1) == 'e' && Ord.charAt(i+2) ==  's')

如果您只是寻求平等,可以使用equals()

http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#contains(java.lang.CharSequence

答案 1 :(得分:1)

您的if测试:

if(Ord.charAt(i) == 'y' && Ord.charAt(i) == 'e' && Ord.charAt(i) == 's')

永远不会是真的。你指定同一个角色必须是三个不同的东西。

以方法String.equalsIgnoreCase取消,以便更好地测试您想要的字词。

例如:

if (word.equalsIgnoreCase("yes") || word.equalsIgnoreCase("no"))
    // do something with word

答案 2 :(得分:0)

希望这有帮助,我试着评论每个部分,让你了解每一行的作用。 只有当“是”和“否”在各自不同的行上时才有效。

这是I / O的Java Tutorials链接。我建议你在有时间的时候阅读它,有很多好的信息Java I/O Tutorial

import java.io.*;
import java.util.ArrayList;
public class test {

    public static void main(String[] args) throws Exception {
    //name of file to read
    File file = new File("filename.txt");

    //BufferedReader allows you to read a file one line at a time
    BufferedReader in = new BufferedReader(new FileReader(file));   

    //temporary Array for storing each line in the file
    ArrayList<String> fileLines = new ArrayList<String>();

    //iterate over each line in file, and add to fileLines ArrayList
    String temp=null;
    while((temp=in.readLine())!=null){
        fileLines.add(temp);        
    }
    //close the fileReader
    in.close();

    //open the file again for writing(deletes the original file)
    BufferedWriter out = new BufferedWriter(new FileWriter(file));

    //iterate over fileLines, storing each entry in a String called "line"
    //if line is equal to "yes" or "no", do nothing.
    //otherwise write that line the the file
    for(String line : fileLines){
        if(line.equalsIgnoreCase("yes")||line.equalsIgnoreCase("no")){
            continue;//skips to next entry in fileLines
        }
        //writes line, if the line wasn't skipped 
        out.write(line);
        out.write(System.getProperty("line.separator")); //newline
    }
    //save the new file 
    out.close();

    }

}