Java如何将文本文档中的字符串读取到字符串数组?

文件中的字符串是这样
123456 654321
1234567 7654321
1234 4321
想要读取成
a[0][0]=123456,a[0][1]=654321
a[1][0]=1234567,a[1][1]=7654321
a[2][0]=1234,a[2][1]=4321
这个样子的

使用RandomAccessFile先读取一次计算行数,seek重置到文件头部,再读取每行,赋值给a数组。

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
public class Test {
 //此题目关键是根据文件内容确定二维数组的行数和列数
 public static void main(String[] args) {
  RandomAccessFile reader = null;
  try {
   reader = new RandomAccessFile("test.txt", "r");
   int n = 0;//行数
   while (reader.readLine() != null) {//第一次按行读取只为了计算行数
    n++;
   }
   String[][] a = new String[n][];
   reader.seek(0);//重置到文件头部
   int j;
   String line;
   String[] strs;
   int i=0;
   while ((line = reader.readLine()) != null) {//第二次按行读取是真正的读取数据
    strs = line.split(" ");//把读取到的一行数据以空格分割成子字符串数组
    a[i]=new String[strs.length];//列数就是数组strs的大小,此句是逐行创建二维数组的列
    for (j = 0; j < strs.length; j++) {
     a[i][j] = strs[j];//逐行给二维数组的每一列赋值
    }
    i++;
   }
   for (i = 0; i < n; i++) {
    for (j = 0; j < a[i].length; j++) {
     System.out.println("a[" + i + "][" + j + "]=" + a[i][j]);
    }
   }
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  } finally {
   if (reader != null) {
    try {
     reader.close();
     reader = null;
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
  }
 }
}

运行结果如图

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-06-01
定义一个二维数组,然后这个文本文件按行读取,用空格split,最后二重for循环按下标索引赋值就可以了。
第2个回答  2019-06-01
1.读取一行
2.通过空格切割字符串成一个数组
3.将数组中赋值给二维数组
读取步骤就不写了,大概代码
String[][] str = new String[10][10];
String line = "";
int i = 0;
while((line = rf.readLine) != -1){
str[i] = line.split(" ");
i++;
}
第3个回答  2019-06-01
import java.util.*;
import java.io.*;

public class Exam
{
public static void main(String[] args) throws Exception
{
//将FilePath修改为你的文件的实际路径
final String FilePath="t.txt";
Scanner sc=new Scanner(new File(FilePath));
ArrayList<String[]> al=new ArrayList<String[]>();
String line;
String[][] a;

while(sc.hasNext())
{
line=sc.nextLine().trim();
if(null!=line&&!line.isEmpty())
al.add(line.split("\\s+"));
}
a=new String[al.size()][];
al.toArray(a);
//输出
for(String[] strs : a)
{
for(String str : strs)
System.out.printf("%s ",str);
System.out.println();
}
sc.close();
}
}本回答被提问者和网友采纳

Java如何将文本文档中的字符串读取到字符串数组?
使用RandomAccessFile先读取一次计算行数,seek重置到文件头部,再读取每行,赋值给a数组。import java.io.FileNotFoundException;import java.io.IOException;import java.io.RandomAccessFile;public class Test { \/\/此题目关键是根据文件内容确定二维数组的行数和列数 public static void main(String[] ...

Java中,如何将一个文件中的文本一行一行地存到一个字符串数组里?
InputStream in = new FileInputStream("c:\\1.txt");BufferedReader br = new BufferedReader(new InputStreamReader(in));String inputLine = null;while ((inputLine = br.readLine()) != null) { System.out.println(inputLine);\/\/这里存入数组,应该能够看懂吧 } } ...

Java中如何提取TXT文件数据并讲数据导入到数组里...急求
public static void main(String[] args) throws FileNotFoundException { Scanner scanner = new Scanner(new FileInputStream("d:\/data.txt"));\/\/通过FileInputStream构建Scanner ArrayList<Integer[]> integerDataList = new ArrayList<>();\/\/初始化数据存放list,arrayList中的每一项是一条数...

java 怎么样把读入的字符串放到数组中
调用CharArray()方法 例如 String a = "qweradsf";char[] c =a.CharArray();这个方法就是将字符串中的字符一个一个添加进去

JAVA怎么从文件中把数字读取出来并且放到一个数组中呢?
编写1.txt文件:代码修改为:结果就是这样的,不是错,因为你的list[]定义的是char数组,可以正确的显示出字符,但是你的num[]定义的是int数组,相当于把char转换成了int,而char转换成int时,实际值为该字符对应的ASCII码。首先我们查一下ASCII码,找到字符'0'对应的十进制数(即int的值):是48...

java截取字符串然后放到数组里
如果你是遍历得到的文件名的话,使用File f = new File(你得到的字符串),然后使用String str = f.getName()就可以得到这个文件名,比如你说的(10).rar,然后char [] charArray = str.toCharArray();就放到数组中去了。

Java读取文件内容(Java读取文件内容为字符串)
Java读取文件内容(Java读取文件内容为字符串)JAVA中读取文件(二进制,字符)内容的几种方JAVA中读取文件内容的方法有很多,比如按字节读取文件内容,按字符读取文件内容,按行读取文件内容,随机读取文件内容等方法

Java中怎样将一个文件中的数据读取出来,并保存成数组。
readLine()) != null) { String[] ary = input.split(" ");lst.add(ary);} br.close();isr.close();fis.close();\/\/将读入内容转为数组 String[][] content = new String[lst.size()][];for (int i = 0; i < content.length; i++) { content[i] = lst.get(i);} ...

JAVA中怎样把用户输入的字符串存入数组中?
import java.util.InputMismatchException;public class saveInputToArr { public static void main(String[] args) { Scanner scan = null;try { scan = new Scanner(System.in);System.out.print( "请输入个数: " );int inputNum = scan.nextInt();if( inputNum <= 0 ) { throw new ...

用java写一段程序,读取本地txt文件中用逗号隔开的数字,这几段数字放...
主要可以通过字符串的分割方法,如下:BufferedReader readTxt=new BufferedReader(new FileReader(new File("text.txt"))); String textLine=""; String str=""; while(( textLine=readTxt.readLine())!=null){ str+=" "+ textLine; } String[] numbersArray=str.split("...

相似回答