-неизвестно

 -Поиск по дневнику

Поиск сообщений в ATUM

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 17.02.2006
Записей:
Комментариев:
Написано: 1139


MappedByteBuffer java

+ в цитатник

Cообщение скрыто для удобства комментирования.
Прочитать сообщение


ATUM   обратиться по имени Понедельник, 17 Февраля 2014 г. 15:05 (ссылка)
package com.raidan.sandbox.readint;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.io.Reader;
import java.io.StreamTokenizer;
import java.nio.BufferUnderflowException;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel.MapMode;

/**
*
* @author raidan
*
*/
public class IntParser {
private static final int LEN = 100000000;

/**
* Чтение с помощью StringTokenizer
*
* @param filename
* @throws IOException
*/
static void readByTokenizer(String filename) throws IOException {

int count = 0;
int[] buffer = new int[LEN];
Reader reader = new FileReader(filename);
try {
StreamTokenizer streamTokenizer = new StreamTokenizer(reader);
streamTokenizer.parseNumbers();

int tokenType;
while ((tokenType = streamTokenizer.nextToken()) != StreamTokenizer.TT_EOF) {
if (tokenType == StreamTokenizer.TT_NUMBER) {
buffer[count++] = (int) streamTokenizer.nval;
}
}
} finally {
reader.close();
}
}

/**
* Чтение через InputStream
*
* @param filename
* @throws IOException
*/
static void readByInputStream(String filename) throws IOException {
int count = 0;
int[] buffer = new int[LEN];
Reader reader = new BufferedReader(new FileReader(filename), 8192 * 8);
try {
int read = -1;
StringBuilder b = new StringBuilder();
while ((read = reader.read()) != -1) {
if (read == ' ' && b.length() > 0) {
buffer[count++] = Integer.parseInt(b.toString());
b.delete(0, b.length());
} else {
b.append((char) read);
}
}

if (b.length() > 0) {
buffer[count++] = Integer.parseInt(b.toString());
}
} finally {
reader.close();
}
}

/**
* Ничего быстрее MemoryMapped файлов пока не придумали. Лишь бы памяти было
* много
*
* @param filename
* @throws IOException
*/
static void readByMemoryMappedFile(String filename) throws IOException {
int count = 0;
int[] buffer = new int[LEN];

RandomAccessFile raf = new RandomAccessFile(filename, "r");
try {
MappedByteBuffer mapFile = raf.getChannel().map(MapMode.READ_ONLY, 0, raf.length());

StringBuilder b = new StringBuilder();
try {
while (mapFile.hasRemaining()) {
byte read = mapFile.get();
if (read == ' ' && b.length() > 0) {
buffer[count++] = Integer.parseInt(b.toString());
b.delete(0, b.length());
} else {
b.append((char) read);
}
}
} catch (BufferUnderflowException e) {
// Всё, файл закончился
}
if (b.length() > 0) {
buffer[count++] = Integer.parseInt(b.toString());
}
} finally {
raf.close();
}
}

/**
* Точка входа
*
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
String filename = "file.data";

long startTime = System.currentTimeMillis();

// readByTokenizer(filename);
// readByInputStream(filename);
readByMemoryMappedFile(filename);
System.out.println("Time: " + (System.currentTimeMillis() - startTime) + " ms...");

}
}
Ответить С цитатой В цитатник
ATUM   обратиться по имени Понедельник, 17 Февраля 2014 г. 22:46 (ссылка)

package javaapplication3;
import java.io.*;
import java.nio.channels.*;
import java.nio.*;
class Main{
public static void main(String[] args) throws IOException {
//Сначала открываем файл для воода данных
FileInputStream obj = new FileInputStream("c:\\1.txt");
//После этого получаем канал для этого файла
FileChannel ob = obj.getChannel();
long razmer_buf = ob.size();
System.out.println("Файл 1.txt имеет размер "+razmer_buf+" байт");
//Выделяем буффер требуемого размера
ByteBuffer b = ByteBuffer.allocate((int)razmer_buf);
//Считываем файл в буффер
ob.read(b);
b.rewind();
for(int i=0; iCODE>
Ответить С цитатой В цитатник
ATUM   обратиться по имени Понедельник, 17 Февраля 2014 г. 23:25 (ссылка)
http://stackoverflow.com/questions/7413830/java-read-line-from-file

List lines=Files.readAllLines(Paths.get("/tmp/test.csv"), Charset.forName("UTF-8"));
for(String line:lines){
System.out.println(line);
}


scanner.useDelimiter(System.getProperty("line.separator"));


List lines = Files.readLines(file, Charsets.UTF_8);


http://stackoverflow.com/questions/5800361/quickes...text-file-line-by-line-in-java



try {
FileInputStream f = new FileInputStream(file);
FileChannel ch = f.getChannel( );
MappedByteBuffer mb = ch.map(FileChannel.MapMode.READ_ONLY, 0L, ch.size());
byte[] bytes = new byte[1024];
int i = 0;
while (mb.hasRemaining()) {
byte get = mb.get();
if(get == '\n') {
if(ra.run(new String(bytes)))
cnt++;
for(int j = 0; j<=i; j++)
bytes[j] = 0;
i = 0;
}
else
bytes[i++] = get;
}
} catch(Exception ex) {
ex.printStackTrace();
}
Ответить С цитатой В цитатник
Ответить С цитатой В цитатник
ATUM   обратиться по имени Вторник, 18 Февраля 2014 г. 15:03 (ссылка)
http://strongexperts.narod.ru/ru/articles/archive/...06/may2006-001/may2006-001.htm


Файл FileAppendDemo.java
import java.io.RandomAccessFile;
import java.io.IOException;
public class FileAppendDemo
{
public static void main(String[] args)
{
long l;
RandomAccessFile raf = null;
try
{
try
{
// Create a new file
// Open the file with append mode
raf = new RandomAccessFile("output.txt", "rw");
raf.writeBytes("Original data \r\n");
raf.close();
raf = new RandomAccessFile("output.txt", "rw");
l = raf.length();
raf.seek(l);
// Append data
raf.writeBytes("Appended data");
raf.close();
}
catch(IOException e)
{
e.printStackTrace();
}
finally
{
if (raf != null)
{
raf.close();
}
}
}
catch(IOException e)
{
e.printStackTrace();
}
}
}

Ответить С цитатой В цитатник
ATUM   обратиться по имени построчное чтение файла Среда, 19 Февраля 2014 г. 09:20 (ссылка)

BufferedReader in = new BufferedReader(new FileReader("C:\\NBP\\example\\JavaApplication3\\src\\newpackage\\puzzles\\puzzle8\\stat.txt"));

int c=0;
String str = in.readLine();
while(str != null){
str = in.readLine();
c++;
}
System.out.println(c);
Ответить С цитатой В цитатник
Комментировать К дневнику Страницы: [1] [Новые]
 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку