我正在测试一个更大的程序的一部分,所以这就是因为这样构造它看起来有点不合逻辑。我使用的代码相当简单,但我不明白为什么前半部分的行该文件完全丢失,根本没有阅读。
public class Trying {
public static String myReader(){
StringBuilder buf = new StringBuilder();
BufferedReader in = null;
String str = null;
try {
InputStream is = new FileInputStream("c:/themap.txt");
in = new BufferedReader(new InputStreamReader(is));
while ((str = in.readLine()) != null) {
buf.append(str);
//buf.append(System.getProperty("line.separator"));
System.out.println(str);
}
in.close();
}
catch (IOException e) {
e.printStackTrace();
}
return buf.toString();
}
public static void main(String[] args) {
String fmap = myReader();
//System.out.println(fmap);
正如你所看到的,我在函数中有一个基本的println只是为了看看发生了什么,并且根本没有显示第一行。正在读取文件的其余部分。也许它与5000行长的文件有关。任何帮助,将不胜感激。
文件的行看起来像这样
o AE_Cube.014
v 4.996883 0.000000 -0.663325
v 4.996883 0.336000 -0.663325
v 4.490770 0.000000 -1.013470
v 4.490770 0.336000 -1.013470
v 4.990770 0.000000 -1.070477
v 4.990770 0.336000 -1.070477
v 4.589172 0.000000 -1.269103
他们都是这样的。它们不会在中间改变为其他格式
我得到的输出是相同的,但缺少文件的前1/3。
f 650//652 654//652 653//652
f 649//653 651//653 654//653
f 648//654 649//654 650//654
f 651//655 647//655 648//655
f 652//656 648//656 650//656
f 650//657 649//657 654//657
f 649//658 647//658 651//658
f 648//654 647//654 649//654
o DV_Cube.059
v -1.593174 0.150000 -2.197537
v -1.617969 0.150000 -2.297979
v -1.494583 0.150000 -2.229900
v -1.525588 0.150000 -2.324470
v -1.593001 0.000000 -2.199192
v -1.616714 0.000000 -2.297979
v -1.526114 0.000000 -2.324543
v -1.495018 0.000000 -2.229900
答案 0 :(得分:0)
显然代码工作正常。我的错误是没有在Eclipse中禁用控制台限制并且它显示不完整的字符串导致我恐慌。
感谢EJP和Maarten Bodewes。
答案 1 :(得分:-1)
这应该有用。
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
public class Test {
public Test() {
}
public static void main(String [] args) throws IOException{
File file = new File("myFile");
ArrayList <String> myText = new ArrayList<String>();
StringBuilder myTextString = new StringBuilder();
try {
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String line;
while((line = br.readLine()) != null){
myText.add(line);
myTextString.append(line + " ");
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(myText);
System.out.println(myTextString);
}
}
在示例中,我展示了填充数组或仅使用stringbuilder构建String的方法