【发布时间】:2017-03-18 02:42:34
【问题描述】:
为了使用 fileoutputstream 将数据字符串写入文件,我们将字符串转换为字节数组。对于使用 fileinputstream 读取数据字符串,我们不能使用转换。 这是什么原因?
阅读:
class Test {
public static void main(String args[]) {
try {
Fileinputstream fin = new Fileinputstream("abc.txt");
int i = 0;
while ((i = fin.read()) != -1) {
System.out.print((char) i);
}
fin.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
写作:
class Test {
public static void main(String args[]) {
try {
FileOutputstream fout = new FileOutputStream("abc.txt");
String s = "Sachin Tendulkar is my favourite player";
byte b[] = s.getBytes(); //converting string into byte array
fout.write(b);
fout.close();
System.out.println("success...");
} catch (Exception e) {
system.out.println(e);
}
}
}
【问题讨论】:
-
不清楚你的意思。请举个例子。
-
什么意思? FileInputStream 有一个 read(byte[]) 方法,它从文件中读取到一个 byte[]。将其转换为字符串很简单(String 中有一个构造函数)
-
@MattFellows “将其转换为字符串是微不足道的”微不足道,但很容易做错。
-
@AndyTurner 确实如此,除非您有幸在您的语言环境编码中只需要使用单字节字符。
-
@MattFellows 祝福没有进入它;如果您的 JVM 的默认编码设置不正确,甚至“只需要使用单字节字符”也不起作用。您只需要知道用于将字符串写入文件的字符编码。
标签: java