我目前正在cpe类的实验室工作,我们必须创建一个简单的程序,从.txt文件中扫描字符串并将它们打印到不同的.txt文件中。到目前为止,我已经绘制了基本程序,但是我的异常一直在扔,尽管我有所有必要的文件。任何人都可以帮我调试吗?
import java.io.*;
import java.util.*;
public class FileIO {
public static void main(String args[]) {
try {
File input = new File("input");
File output = new File("output");
Scanner sc = new Scanner(input);
PrintWriter printer = new PrintWriter(output);
while(sc.hasNextLine()) {
String s = sc.nextLine();
printer.write(s);
}
}
catch(FileNotFoundException e) {
System.err.println("File not found. Please scan in new file.");
}
}
}
答案 0 :(得分:5)
您需要弄清楚它在"input"
文件中的位置。当您只指定"input"
时,它会在当前工作目录中查找该文件。使用IDE时,此目录可能与您的想法不同。
尝试以下方法:
System.out.println(new File("input").getAbsolutePath());
查看文件的查找位置。
答案 1 :(得分:4)
可能你忘记了flush()
try {
File input = new File("input");
File output = new File("output");
Scanner sc = new Scanner(input);
PrintWriter printer = new PrintWriter(output);
while (sc.hasNextLine()) {
String s = sc.nextLine();
printer.write(s);
}
**printer.flush();**
}
catch (FileNotFoundException e) {
System.err.println("File not found. Please scan in new file.");
}
答案 2 :(得分:3)
使用Java I / O访问文件时,必须包含文件的文件类型扩展名(如果存在)。
File input = new File("input.txt");
File output = new File("output.txt");
答案 3 :(得分:0)
我们可以通过使用 FileInputStream 对象读取文件并使用 FileOutputStream 对象写入另一个文件来完成此操作。
以下是示例代码
package java_io_examples;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Vector;
public class Filetest {
public static void main(String[] args) {
try {
FileInputStream fin = new FileInputStream("D:\\testout.txt");
int i = 0;
String s = "";
while((i=fin.read())!=-1) {
s = s + String.valueOf((char)i);
}
FileOutputStream fout = new
FileOutputStream("D:\\newtestout1.txt");
byte[] b = s.getBytes();
fout.write(b);
fout.close();
System.out.println("Done reading and writing!!");
} catch(Exception e){
System.out.println(e);
}
}
}
答案 4 :(得分:0)
public void readwrite() throws IOException
{
// Reading data from file
File f1=new File("D:/read.txt");
FileReader fr=new FileReader(f1);
BufferedReader br=new BufferedReader(fr);
String s = br.readLine();
// Writing data
File f2=new File("D:/write.txt");
FileWriter fw=new FileWriter(f2);
BufferedWriter bw=new BufferedWriter(fw);
while(s!=null)
{
bw.write(s);
bw.newLine();
System.out.println(s);
s=br.readLine();
}
bw.flush();
bw.close();
}