Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Java读取文件_Java_File - Fatal编程技术网

用Java读取文件

用Java读取文件,java,file,Java,File,我有以下代码来打开和读取文件。我很难弄清楚如何让它通过并打印文件中每个字符的总数,打印第一个和最后一个字符,并在文件中间精确打印字符。最有效的方法是什么 这是主要课程: import java.io.IOException; public class fileData { public static void main(String[ ] args) throws IOException { String file_name = "/Users/JDB/NetBeansProject

我有以下代码来打开和读取文件。我很难弄清楚如何让它通过并打印文件中每个字符的总数,打印第一个和最后一个字符,并在文件中间精确打印字符。最有效的方法是什么

这是主要课程:

import java.io.IOException;

public class fileData {

public static void main(String[ ] args) throws IOException {
    String file_name = "/Users/JDB/NetBeansProjects/Program/src/1200.dna";

    try {
        ReadFile file = new ReadFile(file_name);
        String[] arrayLines = file.OpenFile();

        int i;
        for (i=0; i<arrayLines.length; i++)
        {
            System.out.println(arrayLines[i]);
        }
    }

    catch (IOException e) {
        System.out.println(e.getMessage()) ;
    }

}


}
import java.io.IOException;
公共类文件数据{
公共静态void main(字符串[]args)引发IOException{
字符串文件_name=“/Users/JDB/NetBeansProjects/Program/src/1200.dna”;
试一试{
ReadFile file=新的ReadFile(文件名);
字符串[]arrayLines=file.OpenFile();
int i;

对于(i=0;i一些可能有用的提示

  • Map
    可用于存储字母表中每个字符的相关信息
  • 从文件的大小可以找到文件的中间部分

  • 一些可能有用的提示

  • Map
    可用于存储字母表中每个字符的相关信息
  • 从文件的大小可以找到文件的中间部分

  • 我能想到的最容易理解的方法是将整个文件作为字符串读入,然后使用String类上的方法获取第一个、最后一个和中间字符(索引str.length()/2处的字符)


    由于您已经在文件中一次读取一行,因此可以使用StringBuilder从这些行构造一个字符串方法您应该能够获取所需的所有内容。

    我能想到的最简单的理解方法是将整个文件作为字符串读入。然后使用String类上的方法获取第一个、最后一个和中间字符(索引str.length()/2处的字符)


    由于您已经在文件中一次读取一行,因此可以使用StringBuilder从这些行中构造字符串。使用生成的字符串、charAt()和substring()方法,您应该能够获取所需的所有内容。

    这几行代码就可以(使用库):


    任何人说“你不能用图书馆做作业”都是不公平的——在现实世界中,我们总是优先使用图书馆。

    这几行代码就可以做到(使用图书馆):


    任何说“你不能用图书馆做作业”的人这不公平吗?在现实世界中,我们总是优先使用图书馆。

    没错,我们在现实世界中确实使用图书馆,但你不认为这会使家庭作业毫无意义,因此显然不是预期的答案吗?别误会,我可能会在上学时尝试你的方法……我会给老师一个答案答案是不使用第三方图书馆的答案。没错,我们确实在现实世界中使用它们。但你不认为这会使家庭作业毫无意义,因此显然不是预期的答案吗?别误会,我可能会在学校时尝试你的方法……我会给老师这个答案。还有回答R不使用第三方库。>,->你在看什么样的效率?速度还是内存占用?你在看什么样的效率?速度还是内存占用?还考虑……我们想把新的行字符看作是“文件中的字符”吗?IE:我们是否将它们包含在计数中,并且在查找文件的“中间”字符时是否考虑它们?还考虑……我们是否要考虑新行字符为“文件中的字符”?IE:是否将它们包含在计数中,并且在查找文件的“中间”字符时是否考虑它们?
    import java.io.IOException;
    import java.io.FileReader;
    import java.io.BufferedReader;
    
    
    public class ReadFile {
    
        private String path;
    
    public ReadFile (String file_path)
        {
         path = file_path;
        }
    
    public String[] OpenFile() throws IOException
        {
            FileReader fr = new FileReader(path);
            BufferedReader textReader = new BufferedReader(fr);
    
            int numberOfLines = readLines();
            String[] textData = new String[numberOfLines];
    
            int i;
    
            for(i=0; i<numberOfLines; i++)
            {
                textData[i] = textReader.readLine();
            }
    
            textReader.close();
            return textData;
        }
    
        int readLines() throws IOException
        {
            FileReader file_to_read = new FileReader(path);
            BufferedReader bf = new BufferedReader(file_to_read);
    
            String aLine;
            int numberOfLines = 0;
    
            while (( aLine = bf.readLine() ) != null)
            {
                numberOfLines++;
            }
    
            bf.close();
            return numberOfLines;
        }
    
    import org.apache.commons.io.FileUtils;
    
    public static void main(String[] args) throws IOException {
        String str = FileUtils.readFileToString(new File("myfile.txt"));
        System.out.println("First: " + str.charAt(0));
        System.out.println("Last: " + str.charAt(str.length() - 1));
        System.out.println("Middle: " + str.charAt(str.length() / 2));
    }