我试图在java Eclipse中的控制台中编写几行命令,然后将它们保存为.txt文件。 例如我有
这样做
不要那样做
在我的控制台,我希望与.txt文件具有相同的功能。现在我可以将其转换为文件而不是.txt文件,而不是相同的可读形状。 任何帮助?我现在已经工作了3天:))
我认为这是我能得到的最接近的
FileInputStream fileInputStream=null;
File file = new File("C:\\Users\\Administrator\\Desktop\\a.txt");
byte[] bFile = new byte[(int) file.length()];
try {
//convert file into array of bytes
fileInputStream = new FileInputStream(file);
fileInputStream.read(bFile);
fileInputStream.close();
//convert array of bytes into file
FileOutputStream fileOuputStream =
new FileOutputStream("C:\\Users\\Administrator\\Desktop\\a.txt");
fileOuputStream.write(bFile);
fileOuputStream.close();
System.out.println("Done");
}catch(Exception e){
e.printStackTrace();
}
答案 0 :(得分:0)
如果您正在编写文本文件,我建议使用文本流,而不是使用字节。要将“Hello world”写入“M:\ outputfile.txt”的文本文件,例如:
import java.io.*;
public class FileIOExample {
public static void main(String[] args) {
PrintWriter out;
try {
out = new PrintWriter(new FileWriter("M:\\outputfile.txt"));
out.print("Hello ");
out.println("world");
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
答案 1 :(得分:0)
行new byte[(int) file.length()]
导致问题
因为a.txt
的初始长度实际为zero
或non-existing
,您的代码可能无法读取任何字节。
我推荐的实例,
有一个固定的缓冲区大小来读取可能退出creiteria的内容。
将char读取到流中并定义退出creiteria,如chars .equals()
退出等
最后将字节/字符写入文件
提到的方法的一些示例代码:
BufferedReader br = null;
Reader r = new InputStreamReader(System.in);
br = new BufferedReader(r);
String str = null;
try {
do{
System.out.println("Enter Input, exit to quit.");
str = br.readLine();
System.out.println(str);
} while (!str.equalsIgnoreCase("exit"));
} catch (IOException e) {
e.printStackTrace();
}