X

Пример работы с классами File, PrintWriter и Scanner

Мой тестовый пример работы с файлами, а именно простейшая запись и чтение из файла с помощью объектов классов: File, PrintWriter и Scanner

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;

public class Main {

 public static void main(String[] args) {

  String filePath = getFilePath("test.txt");

  System.out.println("Test file here: "+filePath);

  File file = new File( filePath );

  String data = "Hello developer!\n"
     + "Hello web developer!";

  try {

   System.out.println("Write data to test file..");
   writeToFile(file, data);

   System.out.println("Read data from test file..");
   String rdata = readFromFile(file);

   System.out.println("Test data is:\n~~~~~~~~~~~~~");
   System.out.print(rdata);

  } catch (FileNotFoundException e) {
   e.printStackTrace();
  }

 }

 public static String getFilePath(String fileName)
 {
  String baseDir = System.getProperty("user.dir");
  String filePath = baseDir + "\\"+fileName;
  return filePath;
 }

 public static void writeToFile(File file, String data) throws FileNotFoundException
 {
  PrintWriter writer = new PrintWriter(file);
  writer.write(data);
  writer.close();
 }

 public static String readFromFile(File file) throws FileNotFoundException
 {
  Scanner reader = new Scanner(file);
  reader.useDelimiter("\\n");
  StringBuilder data = new StringBuilder();
  while( reader.hasNext() ) data.append(reader.next()+"\n");
  reader.close();
  return data.toString(); 
 }

}

Результат работы:

Test file here: D:\Progr\Eclipse\ScannerPrintWriter\test.txt
Write data to test file..
Read data from test file..
Test data is:
~~~~~~~~~~~~~
Hello developer!
Hello web developer!

Так же стоить обратить внимание на метод который строит путь к файлу в каталоге проекта, вот он:

 public static String getFilePath(String fileName)
 {
  String baseDir = System.getProperty("user.dir");
  String filePath = baseDir + "\\"+fileName;
  return filePath;
 }

Думаю, этот метод будет полезен, в тех случаях когда в каталоге будут размещаться всякие медиа файлы и нужно будет построить к ним полный путь.

Остальное на мой взгляд достаточно просто, поэтому не буду вдаваться в подробности.

Категории: Java Java labs