#java #file
#java #файл
Вопрос:
Я знаю, что есть много вопросов, связанных с этим, но я все еще не понимаю. Я скопировал приведенный ниже код из руководства по созданию файла, записи в него и чтению из него. Существует CreateFile
класс, ReadFile
class и Demo
class:
CreateFile.java
import java.io.*;
import java.lang.*;
import java.util.*;
public class CreateFile {
private Formatter x;
public void openFile(){
try{
x = new Formatter("chinese.txt");
}
catch(Exception e)
{
System.out.println("You have an error");
}
}
public void addRecords(){
x .format("%s%s%s", "20 ", "bucky ", "robers");
}
public void closeFile(){
x.close();
}
}
ReadFile.java
public class ReadFile {
private Scanner x;
public void openFile()
{
try{
x = new Scanner(new File("words.txt"));
}
catch(Exception e){
System.out.println("could not find file");
}
}
public void readFile()
{
while(x.hasNext())
{
String a = x.next();
String b = x.next();
String c = x.next();
System.out.printf("%s %s %sn", a,b,c);
}
}
public void closeFile()
{
x.close();
}
}
public class Demo {
public static void main(String[] args) {
CreateFile g = new CreateFile();
g.openFile();
g.addRecords();
g.closeFile();
WordCounter r = new WordCounter();
r.openFile();
r.readFile();
r.closeFile();
}
В Demo.java
если я удалю последние четыре инструкции, связанные с чтением файла, первые четыре инструкции, связанные с открытием и записью в файл, будут выполняться без ошибок. Однако, как только я добавлю
WordCounter r = new WordCounter();
r.openFile();
r.readFile();
r.closeFile();
и запустите программу, она выводит: Exception in thread "main" could not find file.
Я не уверен, что происходит, файл chinese.txt
никогда не создается?
Комментарии:
1. Внимательно прочитайте код: из какого файла выполняется чтение ReadFile?
2. Руководство по Javadoc для ввода-вывода файлов
3. @JBNizet Я чувствую, что половина моих вопросов на этом сайте заканчиваются глупыми ошибками… Спасибо.
Ответ №1:
Я бы посоветовал вам изучить сериализацию намного проще, чем запись в файлы .txt.
Но если вам действительно нужно создавать файлы .txt, вот как вы записываете в файл .txt
//This gets your project directory
private String projectPath = System.getProperty("user.dir");
//call save()
String save("test.txt", "This is will be save to a test.txt file");
private boolean save(String textfile String outputtext){
String filepath = projectPath textfile;
try{
BufferedWriter writer = new BufferedWriter(new FileWriter(filepath));
writer.write(outputtext);
writer.close();
} catch(IOException e) { }
return true;
}
И вот как вы это читаете
private String load(String textfile){
String temp="";
String filepath = projectPath textfile;
try{
BufferedReader reader =new BufferedReader(new FileReader(filepath));
while(true){
//this will read one line at a time you can append it output
try {
temp = reader.readLine();
//If no more lines break out of the loop
if(line==null)
break;
}catch(IOException e){}
}
reader.close();
}
catch(IOException e){}
//Return contents of the file you loaded
return temp;
}
Я надеюсь, что этот код достаточно понятен. Если у вас возникнут какие-либо дополнительные вопросы, дайте мне знать. Я с удовольствием отвечу на них.
Комментарии:
1. Таким образом, код не компилируется и демонстрирует много неэффективной практики.
2. Это не компилируется, потому что это всего лишь часть более крупного проекта. Я просто скопировал это из одного из своих заданий. Это должно работать нормально. Для меня это работает.