将文本文件拆分为块
Split a text file into blocks
我需要读取一个文本文件,将文本分成6个字符(包括空格)的块,在文本末尾补零以满足要求。
我尝试这样做,这是我所做的。
File file = new File("Sample.txt");
String line;
try {
Scanner sc = new Scanner(file);
while(sc.hasNext()){
line = sc.next();
int chunk = line.length();
int block_size=6;
if((chunk%block_size) != 0)
{
StringBuilder sb = new StringBuilder(line);
int val = chunk%block_size;
for(int i=0; i<val; i++){
sb.append(" ");
}
line = new String(sb.toString());
}
int group = line.length() / block_size;
String[] b = new String[group];
System.out.println(line);
System.out.println(chunk);
int j =0;
for(int i=0; i<group;i++){
b[i] = line.substring(j,j+block_size);
j += block_size;
}
System.out.println("String after spliting is: ");
for(int i=0; i<group;i++){
System.out.println(b[i]);
}
}
}
现在,当输入文件中的文本在单词之间没有空格时,这可以正常工作。但是当我添加空格时会得到不同的输出。我在这一点上被困住了。有什么建议吗?
我不想为您编写解决方案,但我建议您使用 BufferedReader
和 FileReader
可能更容易完成您想要完成的任务并使用 Reader.read(buf)
,其中 buf 是一个 char[6];
我需要读取一个文本文件,将文本分成6个字符(包括空格)的块,在文本末尾补零以满足要求。
我尝试这样做,这是我所做的。
File file = new File("Sample.txt");
String line;
try {
Scanner sc = new Scanner(file);
while(sc.hasNext()){
line = sc.next();
int chunk = line.length();
int block_size=6;
if((chunk%block_size) != 0)
{
StringBuilder sb = new StringBuilder(line);
int val = chunk%block_size;
for(int i=0; i<val; i++){
sb.append(" ");
}
line = new String(sb.toString());
}
int group = line.length() / block_size;
String[] b = new String[group];
System.out.println(line);
System.out.println(chunk);
int j =0;
for(int i=0; i<group;i++){
b[i] = line.substring(j,j+block_size);
j += block_size;
}
System.out.println("String after spliting is: ");
for(int i=0; i<group;i++){
System.out.println(b[i]);
}
}
}
现在,当输入文件中的文本在单词之间没有空格时,这可以正常工作。但是当我添加空格时会得到不同的输出。我在这一点上被困住了。有什么建议吗?
我不想为您编写解决方案,但我建议您使用 BufferedReader
和 FileReader
可能更容易完成您想要完成的任务并使用 Reader.read(buf)
,其中 buf 是一个 char[6];