将第一行替换为最长的java文本文件

将第一行替换为最长的java文本文件,java,Java,我需要用最长的替换文本文件中的第一行,反之亦然。请告诉我需要修复和添加什么。在此阶段,程序将正确查找最长的行。我是Java新手,我确信没有太多问题需要解决,但我不知道到底需要什么。此外,如果可能,请帮助在新文件中实现结果的输出。 代码仍然如下所示: package pkg; import java.io.*; import java.nio.file.Files; import java.util.*; public class Main { static int previousL

我需要用最长的替换文本文件中的第一行,反之亦然。请告诉我需要修复和添加什么。在此阶段,程序将正确查找最长的行。我是Java新手,我确信没有太多问题需要解决,但我不知道到底需要什么。此外,如果可能,请帮助在新文件中实现结果的输出。 代码仍然如下所示:

package pkg;
import java.io.*;
import java.nio.file.Files;
import java.util.*;

public class Main {

    static int previousLongLine = 0;

    public void printLongLine(HashMap longLineMap) {

        Set keyofSet = longLineMap.keySet();
        Iterator itr = keyofSet.iterator();
        while (itr.hasNext()) {
            Integer keys = (Integer) itr.next();
            String value = (String) longLineMap.get(keys);
            System.out.println("Line Number of Longest line: " + keys
                    + "\nLongest line: " + value);
        }
    }
public static void main(String []args){
        // TODO Auto-generated method stub
        String fileName = "G:\\colege\\bursa\\Colege\\Programing\\pkg\\File1.txt";
        // This will reference one line at a time
        String line = null;
        int key = 0;
        int lineSize = 0, lineNumber = 0;

        Main ln = new Main();

        HashMap longLineMap = new HashMap();

        try {
            // FileReader reads text files in the default encoding.
            FileReader fileReader = new FileReader(fileName);

            // Always wrap FileReader in BufferedReader.
            BufferedReader bufferedReader = new BufferedReader(fileReader);

            while ((line = bufferedReader.readLine()) != null) {
                lineNumber++;



                lineSize = line.length();
                if (lineSize > previousLongLine) {
                    previousLongLine = lineSize;
                    longLineMap.clear();
                    longLineMap.put(lineNumber, line);
                }



                if(lineNumber == 1){
                    String old = line;
                    String newl = old.replaceFirst(old, String.valueOf(previousLongLine));

                }
            }

            //close files.
            bufferedReader.close();
        } catch (FileNotFoundException ex) {
            System.out.println("Unable to open file '" + fileName + "'");
        } catch (IOException ex) {
            System.out.println("Error reading file '" + fileName + "'");
        }

        ln.printLongLine(longLineMap);
    }
}



您可以通过一个简单的流操作来实现这一点

package pkg;
import java.io.*;
import java.nio.file.Files;
import java.util.*;

public class Main {

    static int previousLongLine = 0;

    public void printLongLine(HashMap longLineMap) {

        Set keyofSet = longLineMap.keySet();
        Iterator itr = keyofSet.iterator();
        while (itr.hasNext()) {
            Integer keys = (Integer) itr.next();
            String value = (String) longLineMap.get(keys);
            System.out.println("Line Number of Longest line: " + keys
                    + "\nLongest line: " + value);
        }
    }
public static void main(String []args){
        // TODO Auto-generated method stub
        String fileName = "G:\\colege\\bursa\\Colege\\Programing\\pkg\\File1.txt";
        // This will reference one line at a time
        String line = null;
        int key = 0;
        int lineSize = 0, lineNumber = 0;

        Main ln = new Main();

        HashMap longLineMap = new HashMap();

        try {
            // FileReader reads text files in the default encoding.
            FileReader fileReader = new FileReader(fileName);

            // Always wrap FileReader in BufferedReader.
            BufferedReader bufferedReader = new BufferedReader(fileReader);

            while ((line = bufferedReader.readLine()) != null) {
                lineNumber++;



                lineSize = line.length();
                if (lineSize > previousLongLine) {
                    previousLongLine = lineSize;
                    longLineMap.clear();
                    longLineMap.put(lineNumber, line);
                }



                if(lineNumber == 1){
                    String old = line;
                    String newl = old.replaceFirst(old, String.valueOf(previousLongLine));

                }
            }

            //close files.
            bufferedReader.close();
        } catch (FileNotFoundException ex) {
            System.out.println("Unable to open file '" + fileName + "'");
        } catch (IOException ex) {
            System.out.println("Error reading file '" + fileName + "'");
        }

        ln.printLongLine(longLineMap);
    }
}


流动资讯:

package pkg;
import java.io.*;
import java.nio.file.Files;
import java.util.*;

public class Main {

    static int previousLongLine = 0;

    public void printLongLine(HashMap longLineMap) {

        Set keyofSet = longLineMap.keySet();
        Iterator itr = keyofSet.iterator();
        while (itr.hasNext()) {
            Integer keys = (Integer) itr.next();
            String value = (String) longLineMap.get(keys);
            System.out.println("Line Number of Longest line: " + keys
                    + "\nLongest line: " + value);
        }
    }
public static void main(String []args){
        // TODO Auto-generated method stub
        String fileName = "G:\\colege\\bursa\\Colege\\Programing\\pkg\\File1.txt";
        // This will reference one line at a time
        String line = null;
        int key = 0;
        int lineSize = 0, lineNumber = 0;

        Main ln = new Main();

        HashMap longLineMap = new HashMap();

        try {
            // FileReader reads text files in the default encoding.
            FileReader fileReader = new FileReader(fileName);

            // Always wrap FileReader in BufferedReader.
            BufferedReader bufferedReader = new BufferedReader(fileReader);

            while ((line = bufferedReader.readLine()) != null) {
                lineNumber++;



                lineSize = line.length();
                if (lineSize > previousLongLine) {
                    previousLongLine = lineSize;
                    longLineMap.clear();
                    longLineMap.put(lineNumber, line);
                }



                if(lineNumber == 1){
                    String old = line;
                    String newl = old.replaceFirst(old, String.valueOf(previousLongLine));

                }
            }

            //close files.
            bufferedReader.close();
        } catch (FileNotFoundException ex) {
            System.out.println("Unable to open file '" + fileName + "'");
        } catch (IOException ex) {
            System.out.println("Error reading file '" + fileName + "'");
        }

        ln.printLongLine(longLineMap);
    }
}


我使用了try with resource,它在处理停止后自动关闭资源

package pkg;
import java.io.*;
import java.nio.file.Files;
import java.util.*;

public class Main {

    static int previousLongLine = 0;

    public void printLongLine(HashMap longLineMap) {

        Set keyofSet = longLineMap.keySet();
        Iterator itr = keyofSet.iterator();
        while (itr.hasNext()) {
            Integer keys = (Integer) itr.next();
            String value = (String) longLineMap.get(keys);
            System.out.println("Line Number of Longest line: " + keys
                    + "\nLongest line: " + value);
        }
    }
public static void main(String []args){
        // TODO Auto-generated method stub
        String fileName = "G:\\colege\\bursa\\Colege\\Programing\\pkg\\File1.txt";
        // This will reference one line at a time
        String line = null;
        int key = 0;
        int lineSize = 0, lineNumber = 0;

        Main ln = new Main();

        HashMap longLineMap = new HashMap();

        try {
            // FileReader reads text files in the default encoding.
            FileReader fileReader = new FileReader(fileName);

            // Always wrap FileReader in BufferedReader.
            BufferedReader bufferedReader = new BufferedReader(fileReader);

            while ((line = bufferedReader.readLine()) != null) {
                lineNumber++;



                lineSize = line.length();
                if (lineSize > previousLongLine) {
                    previousLongLine = lineSize;
                    longLineMap.clear();
                    longLineMap.put(lineNumber, line);
                }



                if(lineNumber == 1){
                    String old = line;
                    String newl = old.replaceFirst(old, String.valueOf(previousLongLine));

                }
            }

            //close files.
            bufferedReader.close();
        } catch (FileNotFoundException ex) {
            System.out.println("Unable to open file '" + fileName + "'");
        } catch (IOException ex) {
            System.out.println("Error reading file '" + fileName + "'");
        }

        ln.printLongLine(longLineMap);
    }
}


有关试用资源的信息:

package pkg;
import java.io.*;
import java.nio.file.Files;
import java.util.*;

public class Main {

    static int previousLongLine = 0;

    public void printLongLine(HashMap longLineMap) {

        Set keyofSet = longLineMap.keySet();
        Iterator itr = keyofSet.iterator();
        while (itr.hasNext()) {
            Integer keys = (Integer) itr.next();
            String value = (String) longLineMap.get(keys);
            System.out.println("Line Number of Longest line: " + keys
                    + "\nLongest line: " + value);
        }
    }
public static void main(String []args){
        // TODO Auto-generated method stub
        String fileName = "G:\\colege\\bursa\\Colege\\Programing\\pkg\\File1.txt";
        // This will reference one line at a time
        String line = null;
        int key = 0;
        int lineSize = 0, lineNumber = 0;

        Main ln = new Main();

        HashMap longLineMap = new HashMap();

        try {
            // FileReader reads text files in the default encoding.
            FileReader fileReader = new FileReader(fileName);

            // Always wrap FileReader in BufferedReader.
            BufferedReader bufferedReader = new BufferedReader(fileReader);

            while ((line = bufferedReader.readLine()) != null) {
                lineNumber++;



                lineSize = line.length();
                if (lineSize > previousLongLine) {
                    previousLongLine = lineSize;
                    longLineMap.clear();
                    longLineMap.put(lineNumber, line);
                }



                if(lineNumber == 1){
                    String old = line;
                    String newl = old.replaceFirst(old, String.valueOf(previousLongLine));

                }
            }

            //close files.
            bufferedReader.close();
        } catch (FileNotFoundException ex) {
            System.out.println("Unable to open file '" + fileName + "'");
        } catch (IOException ex) {
            System.out.println("Error reading file '" + fileName + "'");
        }

        ln.printLongLine(longLineMap);
    }
}


  • 将文件读入ArrayList
  • 创建另一个列表以保存已排序的元素
  • 在保存输入数据的ArrayList上打开一个流
  • 把线按大小顺序排列。将Comparator.reverseOrder()用于从大到小
  • 使用下游收集器将输出存储为新列表
  • 将排序后的列表写入文件 正在读取文件:

    package pkg;
    import java.io.*;
    import java.nio.file.Files;
    import java.util.*;
    
    public class Main {
    
        static int previousLongLine = 0;
    
        public void printLongLine(HashMap longLineMap) {
    
            Set keyofSet = longLineMap.keySet();
            Iterator itr = keyofSet.iterator();
            while (itr.hasNext()) {
                Integer keys = (Integer) itr.next();
                String value = (String) longLineMap.get(keys);
                System.out.println("Line Number of Longest line: " + keys
                        + "\nLongest line: " + value);
            }
        }
    public static void main(String []args){
            // TODO Auto-generated method stub
            String fileName = "G:\\colege\\bursa\\Colege\\Programing\\pkg\\File1.txt";
            // This will reference one line at a time
            String line = null;
            int key = 0;
            int lineSize = 0, lineNumber = 0;
    
            Main ln = new Main();
    
            HashMap longLineMap = new HashMap();
    
            try {
                // FileReader reads text files in the default encoding.
                FileReader fileReader = new FileReader(fileName);
    
                // Always wrap FileReader in BufferedReader.
                BufferedReader bufferedReader = new BufferedReader(fileReader);
    
                while ((line = bufferedReader.readLine()) != null) {
                    lineNumber++;
    
    
    
                    lineSize = line.length();
                    if (lineSize > previousLongLine) {
                        previousLongLine = lineSize;
                        longLineMap.clear();
                        longLineMap.put(lineNumber, line);
                    }
    
    
    
                    if(lineNumber == 1){
                        String old = line;
                        String newl = old.replaceFirst(old, String.valueOf(previousLongLine));
    
                    }
                }
    
                //close files.
                bufferedReader.close();
            } catch (FileNotFoundException ex) {
                System.out.println("Unable to open file '" + fileName + "'");
            } catch (IOException ex) {
                System.out.println("Error reading file '" + fileName + "'");
            }
    
            ln.printLongLine(longLineMap);
        }
    }
    
    
    
    String inputFile = "files/longestLine.txt";
    List<String> lines = new ArrayList<>();
    
    try(BufferedReader bufferedReader = new BufferedReader(new FileReader(inputFile))) {
    
        String line = bufferedReader.readLine();
    
        while(line != null){
            lines.add(line);
            line = bufferedReader.readLine();
        }
    
    } catch (IOException e) {
        e.printStackTrace();
    }
    

    用代码编辑你的问题,不要在评论中发布代码。我将插入完整的代码作为回应。这可能是“剔除错误”,因为你不应该将所有代码粘贴在那里,而是提供一个。我编辑了帖子。输出是否要覆盖输入文件?非常感谢)