BufferedReader里面的readline是以\t或\n来判断读取完一行..
但我txt文本一行里面有不规则的空格数..怎么读完到一行最后再换行呢?
例如:111 2000 3000 40000 5555 60000
222 3330 4000 55553 5343 34534我想读完一行再一行..但readline好像不行!请问各位什么方法读取数据..然后截取出保存到数组里..
我以String[] s = str.split("\\s");正则来读取不行..
用String[] s = str.split(" ");读取,然后s[0].trim();这样也不行!
还有其他办法吗??好急..请各位高手支招!谢谢............
但我txt文本一行里面有不规则的空格数..怎么读完到一行最后再换行呢?
例如:111 2000 3000 40000 5555 60000
222 3330 4000 55553 5343 34534我想读完一行再一行..但readline好像不行!请问各位什么方法读取数据..然后截取出保存到数组里..
我以String[] s = str.split("\\s");正则来读取不行..
用String[] s = str.split(" ");读取,然后s[0].trim();这样也不行!
还有其他办法吗??好急..请各位高手支招!谢谢............
string[] lines = str.Split(new char[] { '\r', '\n' });
这是什么意思啊?我直接报错喔..!不能用char[]
string[] lines = str.Split('\r')
string[] lines = pasteText.Split('\r')
string[] lines = pasteText.Split('\n')
replaceAll(" ", "")
读出来的字节转换成String。然后再判断是否包含\n。如果有,则\n后面的内容作为新的一行。
好像也不难吧。
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;public class SearchIf { private BufferedReader br = null; public SearchIf() {
}
public String[] readFile(File file) { String line = "";
String trimLine = "";
String strAll = "";
String strArr[] = null; try {
br=new BufferedReader(new InputStreamReader(new FileInputStream(file))); while((line = br.readLine()) != null) {
trimLine = line.trim();
strAll = strAll + trimLine + " ";
} strArr = strAll.split("\\s+"); } catch (IOException e) {
e.printStackTrace();
} finally {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println(strAll);
return strArr;
} public static void main(String[] args) {
String[] strArr = new SearchIf().readFile(new File("D:\\t.txt"));
for(int i=0; i<strArr.length; i++) {
System.out.println(strArr[i]);
}
}
}
以上是完整列子,匹配未定数目的空格只要“\\s*”这样加个*表示空格出现一次或多次。
line--行,在windows里面分行符是'\r\n',unix里面分行符是'n'
public class DataInputTest {
public static void main(String[] args){
try {
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("d:/1.txt")));
String str;
List<Integer> list=new ArrayList<Integer>();
while((str=br.readLine())!=null){
Pattern p=Pattern.compile("\\d+");
Matcher m=p.matcher(str);
while(m.find()){
Integer i=Integer.parseInt(m.group());
list.add(i);
}
}
System.out.println(list.toString());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}