Java Запис

2075 / Java / Запис

 

// \r\n - новий рядок в String
 
1. Використовуйте потоки, коли данні не оброблені
import java.io.*;

String data = "Save to file"; // кирилиця може обрізатися!
OutputStream os = null;
try
{
  os = new FileOutputStream(new File("1.txt"));
  os.write(data.getBytes(), 0, data.length());
}
catch (IOException e)
{
  e.printStackTrace();
}
finally
{
  try
  {
    os.close();
  }
  catch (IOException e)
  {
    e.printStackTrace();
  }
}

 
2. Клас Files з Java 1.7 (всередині використовує потоки)
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;

String data = "2075";
try
{
  Files.write(Paths.get("1.txt"), data.getBytes());
}
catch (IOException e)
{
  e.printStackTrace();
}

 
3. Використовуйте BufferedWriter коли багато операцій запису, це економить час
import java.io.*;

int lines = 10000;
String data = "Запис цього рядка в файл 10000 раз";
File file = new File("1.txt");
FileWriter fr = null;
BufferedWriter br = null;
String dataWithNewLine = data + System.getProperty("line.separator");
try
{
  fr = new FileWriter(file);
  br = new BufferedWriter(fr);
  for(int i = lines; i > 0; i--) // 10000 раз
  {
    br.write(dataWithNewLine);
  }
}
catch (IOException e)
{
  e.printStackTrace();
}
finally
{
  try
  {
    br.close();
    fr.close();
  }
  catch (IOException e)
  {
    e.printStackTrace();
  }
}

 
4. Використовуйте FileWriter коли мало операцій запису
import java.io.*;
 
String data = "2075";
File file = new File("1.txt");
FileWriter fr = null;
try
{
  fr = new FileWriter(file);
  fr.write(data);
}
catch (IOException e)
{
  e.printStackTrace();
}
finally
{
  try
  {
    fr.close();
  }
  catch (IOException e)
  {
    e.printStackTrace();
  }
}