Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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_Arrays_Java.util.scanner - Fatal编程技术网

Java 读取文件并将字符串存储到数组中

Java 读取文件并将字符串存储到数组中,java,arrays,java.util.scanner,Java,Arrays,Java.util.scanner,我试图从文件(MoviesList)中获取一些数据,并将它们存储在变量中,然后打印它们 该文件包含以下不同段落: Fast & Furious7 (2015) Type: Movie Director : James Wan With : Vin Diesel, Paul Walker, Dwayne Johnson Action | Crime | Thriller 137 mins. 这是代码的一个片段 import java.io.BufferedReader; import

我试图从文件(MoviesList)中获取一些数据,并将它们存储在变量中,然后打印它们

该文件包含以下不同段落:

Fast & Furious7 (2015)
Type: Movie
Director : James Wan 
With : Vin Diesel, Paul Walker, Dwayne Johnson 
Action | Crime | Thriller 137 mins.
这是代码的一个片段

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.*;


public class FlotTest {
    private static BufferedReader fR;


    public void lireLignes(File f) throws IOException{
         fR= new BufferedReader(new FileReader(f));
        String chaine ="";
         do {
         chaine = fR.readLine();
         if (chaine!= null) {

             String [] tab=chaine.split(","); 
             String MovieName=tab[1]; 

        System.out.println(MovieName);



    }
    }while (chaine != null);
         fR.close();

}
}
这是测试课

package testFlot;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.*;

public class test1 {
    public static void main(String[] args) throws IOException{
        FlotTest t= new FlotTest();
    File f = new File("MoviesList.txt");
       t.lireLignes(f);
    }

我猜你被困在向数组添加
MovieName
中了?如果是的话


声明一个
ArrayList
变量(在类级别,假设您希望在方法之外访问它),以及您当前调用
System.out.println
的位置,只需将它们添加到
ArrayList
变量中即可。

如果您已读取该行并将其存储到String chaine中,则可以执行以下操作:

   //String chaine="Fast & Furious7 (2015) Type: Movie Director : James Wan With : Vin Diesel, Paul Walker, Dwayne Johnson Action | Crime | Thriller 137 mins";

    String title = chaine.substring(0, chaine.indexOf("(")-1);

    System.out.println(title);

    String year = chaine.substring(chaine.indexOf("(")+1, chaine.indexOf(")"));

    System.out.println(year);

    String type = chaine.substring(chaine.indexOf(":")+2, chaine.indexOf("Director"));

    System.out.println(type);

    String directors = chaine.substring(chaine.indexOf("Director")+11, chaine.indexOf("With"));

    System.out.println(directors);

    //you'll have to figure out a way to parse the actors in depending on how your file is set up
    //it's interesting you don't have a seperator between Actors and the Genre


    //you could create an array
    String[] movie = new String[7];
    movie[0]= title;
    movie[1]=year;
    movie[2]=type;
    movie[3]=directors;



    //I find arraylists easier to deal with so you could create an arraylist
    ArrayList<String> movieList = new ArrayList<String>();
    movieList.add(title);
    movieList.add(year);
    movieList.add(type);
    movieList.add(type);
    movieList.add(directors);
//String chaine=“快速与愤怒7(2015)类型:电影导演:詹姆斯·万与:文·迪塞尔、保罗·沃克、德韦恩·约翰逊动作片|犯罪|惊悚片137分钟”;
字符串title=chaine.substring(0,chaine.indexOf(“”-1);
系统输出打印项次(标题);
字符串年份=chaine.substring(chaine.indexOf(“”+1,chaine.indexOf(“”));
系统输出打印项次(年);
字符串类型=chaine.substring(chaine.indexOf(“:”)+2,chaine.indexOf(“Director”);
系统输出打印项次(类型);
String directors=chaine.substring(chaine.indexOf(“Director”)+11,chaine.indexOf(“With”);
系统输出打印(董事);
//您必须找出一种方法来解析中的参与者,具体取决于文件的设置方式
//有趣的是,演员和体裁之间没有分隔符
//您可以创建一个数组
字符串[]电影=新字符串[7];
电影[0]=片名;
电影[1]=年;
电影[2]=类型;
电影[3]=导演;
//我发现arraylist更容易处理,因此您可以创建arraylist
ArrayList movieList=新的ArrayList();
电影列表。添加(标题);
电影列表。添加(年);
添加(类型);
添加(类型);
增加(导演);

我停下来是因为我有一些工作要完成,但你可以很容易地为演员、体裁和时间长度添加类似的行,然后将它们添加到数组或数组列表。

这将有助于添加一些关于你试图完成的内容的信息(例如,预期输出).有什么问题吗?有什么例外吗?我正在尝试创建一个电影列表(我创建了一个类电影),每部电影都包含标题、导演、演员和soThank you,我将尝试以下内容:D