java怎样读取文件所有内容,主要是跳行问题?谢谢了

我要读取1.txt文件中的所以内容,放到String类型中, 内容如下:
dfgdfga2254
dfa@#%#$%
说明文件有换行,问题也就在这?
希望能得到String的内容是”dfgdfga2254dfa@#%#$%”
我想在一行一行的读取字符,然后在用String的concat的方法把所以的行加在一起,可是我不太会.以下是我的代码,望高手帮忙,谢谢大家了。
class FileReader
{
public String getcontents() throws IOException
{
String str =null;
try{
RandomAccessFile raf=new RandomAccessFile("d:\\1.txt","r");
while(_____)
{
str=str.concat(raf.readLine());
}
}catch(FileNotFoundException e)
{
e.printStackTrace();
}catch(EOFException e)
{
e.printStackTrace();
}
return str;
}
}

1.nextint()等一系列类似的从控制台取数字的操作,都与一个共性 就是“只取数字”部分。什么意思呢,当控制台提示你输入数字时 比如你
输入:123(回车) ,这实际的字符串是:在windows平台上:123\r\n;在linux平台上是:123\n。而我们的
nextint() 只接受了 数字 123 而 “回车”字符却仍然在缓冲区中,则现在使用nextline()时发现,用户根本没有输入,就执行过去
了这个语句,因为程序自动把上个缓冲中的“回车”字符串内容赋值给了nextline(),恰好 nextline() 又是一“\r\n”作为分界标志
的,所以nextline()中的内容就是一个空字符“”。

2.解决方法:
1).不使用 nextint() ,使用 integer.parseint(scanner.nextline());
2).或者在每个nextint()后多加上一个nextline(),让他来消除掉nextint()中留下的“回车”
3.你的代码可改为:
score = input.nextint();
input.nextline();
scores.add(score);
//或者
score = integer.parseint(input.nextline());
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-12-04
如果是字符流文件。可以使用
java.nio.file.Files类的readAllLines将所有内容读到一个List<String>里

Google Guava库也提供了类似的功能com.google.common.io.Files

static String
toString(File file,
Charset charset)
Reads all characters from a file into a String, using the given
character set.
第2个回答  2008-09-22
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
/**
* 2008.09.22
* 读文件工具类
* @author 韩卫召
*/
public class FileReader {
/*
* 传入参数 String 文件全路径
* 返回:文件的内容
*/
public static String readFileByLines(java.lang.String filename) {
File file = new File(filename);
BufferedReader reader = null;
try {
reader = new BufferedReader(new java.io.FileReader(file));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
java.lang.StringBuffer fullString =new StringBuffer();
java.lang.String tempString = null;
try {
while ((tempString = reader.readLine()) != null) {
fullString.append(tempString);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return fullString.toString();
}

public static void main(String[] args) {
// TODO 自动生成方法存根
System.out.println("结果为:"+FileReader.readFileByLines("c:\\1.txt"));
}

}
第3个回答  2008-09-22
while(raf.readLine())也就是 while(raf.readLine()==true)//就是还有内容就读
第4个回答  推荐于2016-09-27
用BufferedReader 就行了
BufferedReader reader = new BufferedReader(new FileReader("d:\\1.txt"));
String line = null;
while ((line = reader.readLine()) != null) {
str = str.concat(line);
}本回答被提问者采纳
相似回答