【发布时间】:2016-10-08 03:22:17
【问题描述】:
我有一个文本文件,其中包含:
griffin.keyes 108de81c31bf9c622f76876b74e9285f "alphabet soup" zookeeper
rosario.dawson 3e34baa4ee2ff767af8c120a496742b5 "animal doctor" admin
bernie.gorilla a584efafa8f9ea7fe5cf18442f32b07b "secret password" veterinarian
donald.monkey 17b1b7d8a706696ed220bc414f729ad3 "M0nk3y business" zookeeper
jerome.grizzlybear 3adea92111e6307f8f2aae4721e77900 "grizzly1234" veterinarian
bruce.grizzlybear 0d107d09f5bbe40cade3de5c71e9e9b7 "letmein" admin
我正在使用以下代码将其读入二维数组:
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Scanner;
public class Credentials {
private FileInputStream fileByteStream = null; // File input stream
private Scanner inFS = null; // Scanner object
final private String [][] credArray = new String[6][4];
public String[][] credArray() throws IOException {
int i = 0; // Index variable
int j = 0; // Index variable
// Import credentials data.
fileByteStream = new FileInputStream("credentials.txt");
inFS = new Scanner(fileByteStream);
// Use carriage return and tab as token separators
inFS.useDelimiter("[\\r\\t]");
// Create array of credentials.txt
for (i = 0; i < NUM_ROWS_CRED; ++i) {
for (j = 0; j < NUM_COLS_CRED; ++j) {
credArray[i][j] = inFS.next();
}
}
fileByteStream.close(); //Closes file.
return credArray;
}
}
读取第一行没有问题。第 2-6 行靠近第一个字符串,前面添加了\n。例如:\nrosario.dawson。
我怀疑分隔符有问题,但我不确定还可以使用什么。我尝试使用("[\\r\\n\\t]"),但这只是用"" 为每行抵消了第一行之后的所有内容。我该如何解决这个问题?
【问题讨论】:
-
这可能是实际上一个制表符分隔的文件吗?有用于阅读这些和处理引用列的库。
-
据我所知,4 列由 3 个制表符分隔,每一行后面都有一个回车。另外,很遗憾,我只能使用标题中列出的代码选项。